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

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: Giới thiệu đề tài Đề 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” ra đời nhằm mục đích phục vụ cho việc quản lý thông tin của giáo viên và học sinh cũng như việc tìm hiểu thông tin của học sinh cũ về khối. Thực chất đây là một bài toán quản lí trên Web. Như vậy, Web site này không đơn giản là cung cấp thông tin mà nó phải có khả năng xử lý dữ liệu, trả kết qủa động về cho máy khách. Mọi người có thể tìm hiểu thông tin về khối, trao đổi thảo luận với nhau thông qua diễn đàn, ... Ngoài những chức năng trên thì em đã đưa vào trang quản lí nhiều chức năng phục vụ cho người quản trị Web site, mở ra khả năng làm việc thông qua mạng. Người quản trị có khả năng ngồi ở nhà có thể truy cập vào trang quản lý của mình (có mật khẩu riêng và địa chỉ URL khác) để thay đổi, cập nhật thông tin về điểm, ... Về nội dung báo cáo chia làm 5 chương nh­ sau: Chương 1 Mạng máy tính và Internet: đưa ra các khái niệm về mạng máy tính nh­ mạng máy tính là gì, mô hình...

doc104 trang | Chia sẻ: hunglv | Lượt xem: 1057 | Lượt tải: 1download
Bạn đang xem trước 20 trang mẫu 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, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Giới thiệu đề tài Đề 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” ra đời nhằm mục đích phục vụ cho việc quản lý thông tin của giáo viên và học sinh cũng như việc tìm hiểu thông tin của học sinh cũ về khối. Thực chất đây là một bài toán quản lí trên Web. Như vậy, Web site này không đơn giản là cung cấp thông tin mà nó phải có khả năng xử lý dữ liệu, trả kết qủa động về cho máy khách. Mọi người có thể tìm hiểu thông tin về khối, trao đổi thảo luận với nhau thông qua diễn đàn, ... Ngoài những chức năng trên thì em đã đưa vào trang quản lí nhiều chức năng phục vụ cho người quản trị Web site, mở ra khả năng làm việc thông qua mạng. Người quản trị có khả năng ngồi ở nhà có thể truy cập vào trang quản lý của mình (có mật khẩu riêng và địa chỉ URL khác) để thay đổi, cập nhật thông tin về điểm, ... Về nội dung báo cáo chia làm 5 chương nh­ sau: Chương 1 Mạng máy tính và Internet: đưa ra các khái niệm về mạng máy tính nh­ mạng máy tính là gì, mô hình OSI, giao thức TCP/IP, ... Giới thiệu Internet , Interanet và các ứng dụng của nó. Chương 2 Tổng quan về CSDL - Vấn đề tích hợp Web với CSDL: trình bày các kiến thức cơ bản về CSDL. Nghiên cứu các giải pháp tích hợp Web với CSDL phục vụ cho việc xây dựng Web database. Chương 3 Công nghệ ASP: Nêu ra vấn đề lùa chọn công nghệ thực hiện đề tài. Trình bày ASP và công nghệ được sử dụng trong đề tài. Chương 4 Phân tích và thiết kế hệ thống: Đi sâu vào việc xây dựng đề tài. Chương 5 Giới thiệu chương trình: Hướng dẫn cài đặt, triển khai chương trình. Nêu lên các mặt mạnh và hạn chế của chương trình. Em đã cố hết sức để hoàn thành đề tài ở mức tốt nhất có thể. Tuy nhiên, do thời gian thực hiện đề tài không phải là dài và khối lượng công việc lại lớn. Mặt khác, trước khi nhận đề tài, nghiệp vụ xây dựng Web còn rất mới đối với em nên em phải nghiên cứu nhiều về vấn đề về lý thuyết nên chương trình còn nhiều thiếu sót, hạn chế, em rất mong được sự chỉ bảo, góp ýcủa thày cô giáo và các bạn để em có thể nâng cấp chương trình hoàn thiện hơn. Em xin chân thành cảm ơn! Lời cám ơn Trước tiên, em xin chân thành cảm ơn Tiến sĩ Phan Trung Huy đã tận tình hướng dẫn và giúp đỡ em trong quá trình làm đồ án tốt nghiệp. Em còng xin cảm ơn sự giúp đỡ của thày Doãn Minh Cường đã giúp đỡ em về mặt tư liệu để hoàn thành đề tài. Xin cảm ơn sự góp ý quý báu của bạn bè cùng líp đã quan tâm và chia sẻ khó khăn trong quá trình thực hiện đề tài. Nhân đây, em còng xin bày tỏ lòng biết ơn đối với các thày, cô giáo trong khoa Toán ứng dụng nói riêng và các thày cô giáo của trường Đại học Bách Khoa Hà nội nói chung đã truyền đạt kiến thức cho em trong suốt 5 năm học tập tại trường. Những kiến thức đó là hành trang không thể thiếu cùng em trong quá trình công tác sau này. Được trở thành sinh viên của trường Đại học Bách Khoa Hà nội là niềm vinh dự lớn đối với em và em cố gắng phấn đấu học tập và lao động để xứng đáng với niềm vinh dự đó. Chương 1. Mạng máy tính và internet 1.1. Mạng máy tính. 1.1.1. Khái niệm về mạng máy tính. Mạng máy tính là một tập hợp các máy tính được nối với nhau bởi các đường truyền vật lý theo mét kiến tróc nào đó . Đường truyền vật lý dùng để chuyển các tín hiệu điện tử giữa các máy tính. Các tín hiệu điện tử đó biểu thị các giá trị dữ liệu dưới dạng các xung nhị phân (on - off). Tất cả các dữ liệu được truyền giữa các máy tính đều thuộc một dạng sóng điện từ (EM) nào đó, trải qua các tần số radio tới sóng cực ngắn (viba) và tia hồng ngoại. Tuỳ theo tần số sóng điện từ có thể dùng các đường truyền vật lý khác nhau để truyền các tín hiệu. Kiến trúc mạng máy tính thể hiện cách nối các máy tính với nhau ra sao và tập hợp tất cả các quy tắc, quy ước mà tất cả các thực thể tham gia truyền thông trên mạng phải tuân theo để cho mạng hoạt động tốt. Cách nối các máy tính được gọi là hình trạng (topolopy) của mạng (gọi tắt là topo). Còn các tập quy tắc, quy ước truyền thông thì được gọi là giao thức (protocol) của mạng. 1.1.2. Mô hình mạng OSI. Khi thiết kế mạng, các nhà thiết kế tự do lùa chọn kiến trúc mạng của mình. Từ đó dẫn đến tình trạng không tương thích giữa các mạng: phương pháp truy nhập đường dẫn khác nhau, sử dụng họ giao thức khác nhau .. . Sự không tương thích đó là trở ngại cho sự tương tác của người sử dụng các mạng khác nhau. Nhu cầu trao đổi thông tin càng lớn thì trở ngại đó càng không thể chấp nhận được với người sử dụng. Sự thúc bách của khách hàng đã khiến cho các nhà sản xuất và các nhà nghiên cứu – thông qua các tổ chức chuẩn hoá quốc gia và quốc tế – tích cực tìm kiếm một sự hội tụ cho các sản phẩm mạng trên thị trường. Vì lý do trên, vào năm 1984 Tổ chức tiêu chuẩn hoá ISO đã xây dựng một mô hình tham chiếu cho việc kết nối đến các hệ thống mở (Reference Model for Open Systems Interconnection hay gọn hơn: ISO Reference Model) để làm chuẩn cho các nhà thiết kế và chế tạo các sản phẩm về mạng. Mô hình này gồm bảy tầng như sau: Sending Application Receiver Application APPLICATION LAYER presentation LAYER session LAYER transport LAYER datalink LAYER network LAYER physical LAYER APPLICATION LAYER presentation LAYER session LAYER Transport LAYER Datalink LAYER network LAYER physical LAYER Hình 1.1. Mô hình mạng OSI Application layer: chứa các dịch vụ phục vụ cho người dùng nh­ truyền nhận file hay email, ... Presentation layer: chứa các dịch vụ về thao tác dữ liệu nh­ nén, giải nén, ... Cấp này không có các dịch vụ thông tin của riêng nó. Session layer: chứa các dịch vụ cho phép trao đổi thông tin giữa các quá trình, tạo và kết thúc kết nối của các quá trình trên các máy khác nhau. Transport layer: chứa các dịch vụ tìm và sửa lỗi nhằm bảo đảm tính đúng đắn của dữ liệu nhận. Network layer: quản lý việc kết nối trong mạng liên quan đến địa chỉ của máy tính gửi và máy tính nhận còng nh­ sù tắc nghẽn giao thông của mạng. Datalink layer: bảo đảm các gói dữ liệu được gửi đi thông qua mạng vật lý. Physical layer: phục vụ cho việc gửi các dữ liệu là các bít thô thông qua kênh truyền. Do đặc tính của mô hình OSI, dữ liệu gửi phải đi qua tất cả 14 cấp để đến được chương trình nhận. ở mỗi cấp, dữ liệu sẽ bị trễ một khoảng thời gian. Điều này làm giảm hiệu suất của mạng. Mô hình TCP/IP có ưu điểm hơn và hiện đang được sử dụng rộng rãi. 1.1.3. Họ giao thức TCP/IP. Năm 1970, Vint Cerf và Robert Kahn đã đưa ra việc thiết kế chi tiết cho mét protocol để liên lạc giữa các mạng khác nhau. Đến năm 1982, việc thiết kế này được cài đặt rộng rãi và được gọi là TCP/IP (Transmission control protocol). TCP/IP gồm bốn líp được mô tả bằng hình sau: Application layer HTTP, FTP, Telnet, smtp Transport layer Tcp, udp Network layer Ip Physical layer Ethernetx.25, token ring Sending Data Receiving Data Hình 1.2. Kiến trúc TCP/IP Application layer: chứa các ứng dụng có sử dụng mạng. Líp này tương ứng với hai líp trên cùng ( application và presentation layer) của mô hình OSI. Transport layer: cung cấp các dịch vụ truyền nhận dữ liệu giữa các quá trình với nhau. Các quá trình này có thể trao đổi thông tin với nhau thông qua địa chỉ của máy tính gửi/ nhận và cổng thông tin. Cấp này tương ứng với hai cấp kế tiếp (session và transport layer) của mô hình OSI. Network layer: đảm nhận việc xác định, tìm đường và phân phối các gói thông tin tới địa chỉ đích. Network layer trong mô hình TCP/IP tương ứng với hai líp network và datalink của mô hình OSI. Physical layer: sử dụng các giao tiếp chuẩn hiện có nh­ Ethernet, Tokenring, .. để phục vụ cho việc gửi và nhận dữ liệu. TCP là giao thức truyền điều khiển “có liên kết”, nó gửi từng gói dữ liệu đi, nơi nhận dữ liệu theo giao thức này phải có trách nhiệm thông báo và kiểm tra dữ liệu đã đủ hay chưa, có lỗi hay không có lỗi, nếu dữ liệu bị mất hay háng TCP sẽ yêu cầu gửi lại dữ liệu cho đến khi hết các lỗi. Trước khi truyền dữ liệu bao giê cũng có sự kết nối giữa máy gửi và máy nhận (do đó mới gọi là “có liên kết”). Truyền dữ liệu theo TCP đảm bảo việc truy cập, truyền dữ liệu trên mạng là không mất mát. Nó thích hợp cho các ứng dụng đòi hỏi độ tin cậy khi truyền dữ liệu, nhưng lại không thích hợp cho các ứng dụng đòi hỏi lưu thông trên mạng rộng rãi. Muốn gửi gói dữ liêu (datagram) đến nhiều đích, TCP phải thiết lập đến một mạch ảo. Đây là một tiến trình tiêu thụ thời gian và tập trung tài nguyên. Đối với các ứng dụng phụ thuộc vào việc truyền rộng rãi, UDP là một giao thức líp vận chuyển thích hợp hơn. UDP có thể truyền dữ liệu mà không đòi hỏi phải thiết lập một mạch dữ liệu. Mỗi đơn vị dữ liệu được gởi với một địa chỉ nguồn và đích đầy đủ và chỉ số cổng liên quan cho việc truyền dữ liệu. UDP là một giao thức vận chuyển “không liên kết”vì nó không sử dụng một kết nối được thiết lập để truyền dữ liệu và nó cũng không có cơ chế để kiểm tra dữ liệu. UDP có xu thế hoạt động nhanh hơn TCP. Tuy nhiên, UDP không bảo đảm rằng đến theo thứ tự nó được gửi. Một thuận lợi lớn của UDP so với TCP là giao thức này thích hợp cho những ứng dụng được truyền rộng rãi. Một gói dữ liệu có thể truyền trên mạng bằng cách xác định một địa chỉ truyền rộng rãi (broadcast address) trên địa chỉ đích. IP là giao thức liên mạng cung cấp khả năng kết nối các mạng con thành liên mạng để truyền dữ liệu. Vai trò của IP tương tự giao thức tầng mạng trong mô hình OSI, nó giải mã các địa chỉ và tìm đường để đưa dữ liệu đến đích. TCP/IP có những đặc điểm sau đây – những đặc điểm đã làm nó trở nên phổ biến: Tính độc lập về topolopy của mạng: TCP/IP được dùng trên mạng bus, rimg và star. Nó có thể dùng trong mạng cục bộ (LAN) còng nh­ mạng diện rộng (WAN). Tính độc lập về phần cứng mạng: TCP/IP có thể dùng Ethernet, tokenring, ... Chuẩn nghi thức mở: Với chuẩn TCP/IP có thể hiện thực trên bất kỳ phần cứng hay hệ điều hành nào. Do đó, TCP/IP là tập nghi thức lý tưởng để kết hợp phần cứng còng nh­ phần mềm khác nhau. Sơ đồ địa chỉ toàn cầu: mỗi máy tính trên mạng TCP/IP có một đia chỉ xác định duy nhất. Mỗi packed dữ liệu được gửi trên mạng TCP/IP có một header gồm địa chỉ của máy đích còng nh­ địa chỉ của máy nguồn. Khung Client-Server: TCP/IP là khung cho những ứng dụng client-server mạnh hoạt động trên mạng cục bộ và mạng diện rộng. Chuẩn nghi thức ứng dụng: TCP/IP không chỉ cung cấp cho mọi người lập trình phương thức truyền dữ liệu trên mạng giữa các ứng dụng mà còn cung cấp nhiều nghi thức ở mức ứng dụng (những nghi thức hiện thực các chức năng thường dùng như email, truyền nhận file). 1.2. INTERNET. 1.2.1. Giới thiệu về internet. Internet là một mạng máy tính có phạm vi toàn cầu bao gồm nhiều mạng nhỏ còng nh­ các máy tính riêng lẻ được kết nối với nhau để có thể liên lạc và trao đổi thông tin. Trên quan điểm Client/ Server thì có thể xem là Internet nh­ là mạng của các mạng của các Server, có thể truy xuất bởi hàng triệu Client. Việc chuyển và nhận thông tin trên Internet được thực hiện bằng giao thức TCP/IP ( trình bày ở phần 1.3) Internet bắt nguồn từ APANET trực thuộc Bộ quốc phòng Mỹ và được mở rộng cho các viện nghiên cứu, sau này được phát triển cho hàng triệu người cùng sử dông nh­ ngày hôm nay. Ban đầu các nhà nghiên cứu liên lạc với nhau qua mạng bằng dịch vụ thư điện tử, sau đó phát sinh thêm một số mạng máy tính nh­ mạng Usernet, ngày nay là dịch vụ bảng tin điện tử. Mạng này được thiết lập lần đầu tiên ở University of North Carolina, mà qua đó người dùng có thể gửi và đọc các thông điệp theo các đề tài tự chọn. ở việt Nam thì mạng Trí Tuệ Việt Nam của công ty FPT là mạng đầu tiên được xây dựng theo dạng bảng tin điện tử. Các nhà khoa học khắp nơi trên thế giới tham gia vào hệ thống thông tin mở này, những người dùng với mục đích thương mại và công chúng cũng tham gia vào hệ thống này thông qua các nhà cung cấp dịch vụ Internet. Vì thế gây ra sự phát triển bùng nổ thông tin liên lạc toàn cầu qua mạng máy tính. Đó chính là mạng Internet hiện nay. 1.2.2. Các dịch vụ thông tin trên Internet. Cùng với TCP/IP, các chuẩn cho tầng ứng dụng cũng được phát triển ngày càng phổ biến trên Internet. Các ứng dụng có sớm nhất là Telnet, FTP, SMTP và DNS đã trở thành những dịch vụ thông tin quen thuộc trên Internet. Với sự phát triển của công nghệ thông tin và nhu cầu xã hội, danh sách các dịch vụ thông tin trên Internet ngày càng dài thêm với sự đóng góp sản phẩm của nhiều nhà cung cấp dịch vụ khác nhau. Sau đây là một vài dịch vụ điển hình nhất: 1.2.2.1. Dịch vụ tên miền (DNS) Việc định danh các phần tử của liên mạng bằng các con sè nh­ trong địa chỉ IP rõ ràng không làm cho người sử dụng hài lòng bởi chúng khó nhớ, dễ nhầm lẫn. Vì thế người ta đã xây dựng hệ thống đặt tên cho các phần tử của Internet, cho phép người dùng chỉ cần nhớ các tên chứ không cần nhớ địa chỉ IP nữa. Cũng giống nh­ địa chỉ IP, tên mỗi máy tính trên mạng phải là duy nhất. Ngoài ra cần phải có cách để chuyển đổi tương ứng giữa các tên và các địa chỉ số. Đối với một một liên mạng tầm cỡ toàn cầu nh­ Internet phải có một hệ thống đặt tên trực tuyến và phân tán thích hợp. Hệ thống này được gọi là DNS ( Domain Name System). Đây là một phương pháp quản lý các tên bằng cách giao trách nhiệm phân cấp cho các nhóm tên. Mỗi cấp trong hệ thống được gọi là một miền ( domain), các miền được tách nhau bởi dấu chấm. Ví dụ: java.sun.com. 1.2.2.2. Đăng nhập từ xa (Telnet) Telnet cho phép người sử dụng từ một trạm làm việc của mình có thể đăng nhập vào một trạm ở xa qua mạng và làm việc với hệ thống y như là một trạm cuối nối trực tiếp với trạm từ xa đó. Để khởi động Telnet, từ trạm làm việc của mình người sử dụng chỉ việc gõ: telnet Sau đó, nếu mạng hoạt động tốt thì người sử dụng chỉ việc làm theo các thông báo hiển thị trên màn hình. Telnet có một tập lệnh điều khiển hỗ trợ cho quá trình thực hiện. 1.2.2.3. Truyền tệp (FTP). Dịch vụ truyền tệp trên Internet được đặt tên theo giao thức mà nó sử dụng là FTP ( File Transfer Protocol). FTP cho phép chuyển các tệp từ một trạm này sang trạm khác, bất kể các trạm đó ở đâu và sử dụng hệ điều hành gì, chỉ cần chúng được nối Internet và cài đặt FTP. Để khởi động FTP, từ trạm làm việc của mình ta chỉ cần gõ: ftp FTP sẽ thiết lập liên kết với trạm ở xa và lúc đó ta sẽ phải làm các thao tác để đăng nhập hệ thống. Sau khi trên màn hình hiển thị dấu nhắc ftp> ta có thể gõ tiếp các lệnh cho phép truyền tệp theo cả hai chiều. Trong trường hợp không có account thì ta không thể sử dông nh­ trên được. Tuy nhiên, các tác giả FTP đă cung cấp một dịch vụ gọi là “ FTP vô danh” ( anonymuos FTP) cho phép những người không có account có thể truy cập tới một số tệp nhất định. Khi sử dụng chương trình FTP để kết nối vào một anonymous FTP host, nó hoạt động giống như nghi thức FTP, ngoại trừ khi nó đòi hỏi một User ID, đó là anonymous. Khi nó đòi hỏi password, chóng ta đánh vào một xâu ký tự bất kỳ. Khi người quản trị hệ thống cài đặt một máy tính nh­ là một anonymous FTP host, định rõ những thư mục dùng cho việc truy cập chung. Nh­ mét biện pháp an toàn, hầu hết những anonymous FTP host cho phép User download file, nhưng không cho phép upload file ( chép lên Server). 1.2.2.4. Thư điện tử ( Email). Đây là một trong những dịch vụ thông tin phổ biến nhất trên Internet hiện nay. Tuy nhiên, khác với các dịch vụ DNS, Telnet, FTP, thư điện tử không phải là dịch vụ “từ đầu - đến cuối” (end to end), nghĩa là máy gửi thư và máy nhận thư không cần thiết phải liên kết trực tiếp với nhau để thực hiện việc chuyển thư. Nó là dịch vụ kiểu “ lưu và chuyển tiếp” (Store and Forward). Thư điện tử được chuyển từ máy này sang máy khác cho đến máy đích ( giống nh­ trong hệ thống bưu chính thông thường: thư được chuyển đến tay người nhận sau khi đi qua một số bưu cục trung chuyển). Hình sau cho sơ đồ ví dụ hoạt động của mạng thư điện tử: Mỗi người dùng ( Client) đều phải kết nối với một Email Server gần nhất ( đóng vai trò bưu cục địa phương). Sau khi soạnh thảo xong thư và đề rõ địa chỉ đích ( người nhận), người sử dụng sẽ gửi thư đến Email Server của mình đã đăng ký. Email Server này có nhiệm vụ chuyển thư đến đích hoặc đến một Email Server trung gian khác. Thư sẽ chuyển đến Email Server của người nhận và được lưu tại đó. Đến khi người nhận thiết lập một kết nối đến Email Server đó thì thư sẽ được chuyển về máy của người nhận, nếu không thì thư vẫn tiếp tục được giữ tại Server để đảm bảo không bị mất thư. Giao thức truyền thống sử dụng cho hệ thống điện tử của Internet là SMTP ( Simple Mail Transfer Protôcl). Giao thức này được đặc tả trong hai chuẩn là RFC 822 ( định nghĩa cấu trúc của thư) và RFC 821 ( đặc tả trao đổi thư giữa hai trạm của mạng). Hệ thống địa chỉ thư điện tử trên Internet không chỉ định danh cho các host của mạng mà phải xác định rõ người sử dụng trên các host đó để trao đổi thư. Dạng tổng quát của địa chỉ Email là: Login-name@host-name Ví dô: hoanhn@yahoo.com 1.2.2.5. Nhóm tin ( New groups) Đây là dịch vụ cho phép nhiều người sử dụng ở nhiều nơi khác nhau có cùng mối quan tâm có thể tham gia vào một “nhóm tin” và trao đổi các vấn đề quan tâm của mình thông qua các nhóm tin này. Có thể có nhiều nhóm tin khác nhau như: nhóm tin về nhạc cổ điển, nhóm tin về hội hoạ, ... Trong mỗi nhóm tin có thể có nhiều nội dung thảo luận khác nhau. Tên nhóm tin được cấu trúc theo kiểu phân cấp, các cấp phân cách bởi một dấu chấm. Ví dô: Rec. music. Classic Trên Internet có nhiều Server tin khác nhau, trong đó tin tức được thu thập từ nhiều nguồn khác nhau. Các Server tin cũng có thể tạo các nhóm tin cục bộ đáp ứng nhu cầu của người sử dụng. Người sử dụng tương tác với một Server tin thông qua một chương trình được đặt tên là chương trình đọc tin (News Reader). Và người sử dụng chỉ biết đến một Server tin duy nhất, đó là Server mà mình kết nối vào. Mọi sự trao đổi, tương tác giữa các Server tin và các nhóm tin hoàn toàn “trong suốt” đối với người sử dụng. Với dịch vụ này, một người sử dụng có thể nhận được các thông tin mà mình quan tâm của nhiều người từ khắp nơi, đồng thời có thể gửi thông tin của mình đi cho những người này. 1.2.2.6. Tìm kiếm tệp (Archie). Archie là một dịch vụ Internet cho phép tìm kiếm theo chỉ số (index) các tệp khả dụng trên các Server công cộng (Archie Server) của mạng. Người sử dụng có thể yêu cầu Archie tìm các tệp có chứa một xâu văn bản hoặc chứa một từ nào đó. Archie sẽ trả lời bằng tên các tệp thoả mãn yêu cầu và chỉ ra tên của các Server chứa các tệp đó. Để dùng Archie, ta phải chọn một Archie Server. Sau đó, có thể dùng Telnet để truy cập tới Server và tìm kiếm tệp mong muốn. Ta cũng có thể dùng thư điện tử ( chứa các lệnh tìm kiếm mong muốn) gửi tới địa chỉ Archie@Server trong đó Server chính là Archie Server mà ta đã chọn, và chờ đợi để nhận thư trả lời ( về kết quả tìm kiếm) từ Server. Ngoài dịch vụ tìm kiếm tệp hiện nay còn có các dịch vụ tìm kiếm khác nh­ tìm kiếm thông tin theo thực đơn Gopher, tìm kiếm thông tin theo chỉ số WAIS (Wide Area Infomation Server)... 1.2.2.7. World Wide Web (WWW). WWW là một dịch vụ thông tin mới nhất và hấp dẫn nhất trên Internet. Nó dùa trên kỹ thuật biểu diễn thông tin có tên là siêu văn bản (hypertext), trong đó các từ được chọn trong văn bản có thể được “mở rộng” bất kỳ lúc nào để cung cấp các thông tin chi tiết. Sự mở rộng ở đây được hiểu theo nghĩa là chúng có các liên kết tới các tài liệu khác ( có thể là văn bản, âm thanh, ...) có chứa các thông tin bổ sung. Thuật ngữ World Wide Web được công bố lần đầu tiên vào tháng 8/1991 trên nhóm tin alt.hypertext. Từ đó nhiều nhà phát triển đã tham gia phát triển Web trên các hệ điều hành khác nhau (Unix, Macintosh, Window, ...). Web sử dụng một ngôn ngữ có tên là HTML. HTML cho phép đọc và liên kết các kiểu dữ liệu khác nhau trên cùng một trang thông tin. Để thực hiện việc truy nhập, liên kết các tài nguyên khác nhau theo kỹ thuật siêu văn bản, WWW sử dụng khái niệm URL (Uniform Resource Locator). Đây chính là một dạng tên để định danh duy nhất cho một tài liệu hoặc một dịch vụ Web. Hoạt động của Web dùa trên mô hình Client/Server. Tại trạm Client, người sử dụng sẽ dùng Web Browser để gửi yêu cầu tìm kiếm các tập tin HTML đến Web Server ở xa trên mạng Internet nhờ địa chỉ URL. Web Server nhận yêu cầu rồi gửi kết quả trả về cho Client. Với sự hấp dẫn của mình, Web đã phát triển mạnh tới mức mà người ta gọi là “ bùng nổ Web”. Ngày nay, Web không chỉ đơn thuần là cung cấp thông tin trên Internet mà nó đã được ứng dụng rộng rãi trong lĩnh vực thương mại nh­ quảng cáo, đặt hàng trực tuyến, ... 1.2.3. Interanet. Do nhận thức được vai trò của thông tin trong hoạt động kinh tế thị trường cạnh tranh gay gắt nên các tổ chức , doanh nghiệp đều tìm mọi cơ hội và biện pháp để xây dựng và hoàn thiện các hệ thống thông tin nội bộ của mình. Hệ thống này bao gồm một cơ sở hạ tầng truyền thông máy tính và một tập hợp các chương trình ứng dụng nhằm tin học hoá các hoạt động tác nghiệp của đơn vị. Với hệ thống này, thông tin nội bộ phải luôn chính xác, tin cậy, hiệu quả, .. đặc biệt hệ thống phải có khả năng truyền thông với thế giới bên ngoài qua mạng toàn cầu Internet khi cần thiết. Từ những mục tiêu trên, người ta thấy cần phải xây dựng một mạng thông tin nội bộ cho các đơn vị, nó được gọi là mạng Internet. Còng nh­ Internet, Interanet đã phát triển không ngừng và ngày càng thu hót được sự quan tâm của người sử dụng lẫn nhà cung cấp. Song song với việc phát triển các công cụ tiện Ých và các dịch vụ thông tin cho Internet, người ta cũng tập trung vào việc chọn lùa các giải pháp cho Interanet. Một số sản phẩm nh­ Lotus Notes, Novell GroupWise, Microsoft Exchange, ... đều đã hướmg mục tiêu đến Interanet. Mạng nội bộ có thể là mạng cục bộ LAN, hoặc kết nối các máy tính vùng rộng hơn WAN 1.3. Mô hình ứng dụng Client- Server và ứng dụng trên Web Client - Server là một mô hình tính toán khi máy Client gởi một yêu cầu nào đó tới máy server. Yêu cầu thường là để truy xuất thông tin như những yêu cầu trong database, hay yêu cầu để xử lý như cập nhật database hoặc chạy một số quá trình nào đó. Máy client thực hiện yêu cầu, và máy server đáp ứng yêu cầu này. Lợi ích của hệ thống client-server là tận dụng được sức mạnh của mỗi máy hoặc hệ điều hành. Client thực hiện một số ứng dụng về mặt logic và thể hiện cho người sử dụng, trong khi server thực hiện việc xử lý phía sau và các chức năng về cơ sở dữ liệu. Client Request Response Server Hình 1.4 Mô hình client – server. Cấu hình cơ bản của ứng dụng Client - Server : Database Server - Quaûn lyù döõ lieäu - Lệnh SQL truy xuất database - Chương trình ứng dụng Application Server Client Hình 1.5 Cấu hình cơ bản của ứng dụng Client – Server Đối với ứng dụng trên Web, trình duyệt (browser) phục vụ như là client chung, gởi yêu cầu về một trang web, nhận hồi đáp là ngôn ngữ HTML, và hiển thị nó cho người sử dụng. Web server nhận yêu cầu thông qua giao thức dịch chuyển siêu văn bản (HTTP) và trả về thông tin cần thiết trong dạng HTML mà client có thể hiểu được. Tương tự như mô hình client-server, ta có thể phân bố việc xử lý ứng dụng và quản lý cơ sở dữ liệu thành từng phần với những mức độ khác nhau giữa máy client và máy server. Hình1.3 mô tả cấu trúc của một ứng dụng web điển hình : Client Server HTTP Request for a web page HTML Document response Hình 1.6 Mô hình web điển hình So với ứng dụng client - server, ưu điểm chính của ứng dụng trên web là việc triển khai ứng dụng. Với ứng dụng client-server, ta phải cài đặt lại thành phần trên client mỗi khi thay đổi và cập nhật ứng dụng. Trong một ứng dụng web, với mỗi tính năng hay việc cập nhật mới ứng dụng, ta không phải đưa ra một chương trình thực thi mới trên mỗi máy desktop của người sử dụng. Browser phục vụ như là client chung, cung cấp việc truy cập tới thông tin hiện có trên server. Chi phí trong việc kiểm soát phiên bản, phân bố phần mềm, và quản trị hệ thống giảm đi rất nhiều đối với ứng dụng trên Web. Hình 1.4 mô tả cấu hình cơ bản của ứng dụng trên Web Hình 1.7 Cấu hình cơ bản của ứng dụng trên Web Khác với ứng dụng chạy trên máy tính đơn lẻ khi mà việc xử lý được thực hiện trên mỗi máy tính, ứng dụng Web tập trung xử lý trên server (gồm một hay nhiều server). Vì browser chỉ đưa ra giao diện người sử dụng, toàn bộ ứng dụng được đặt trên server : Web Browser Web server Internet/Intranet Network Application Server Network Database Application Server (Server ứng dụng) : là phần mềm cung cấp các dịch vụ để hỗ trợ cho các ứng dụng Web làm chức năng kết nối người dùng đầu cuối với cơ sở dữ liệu cộng tác. Nó hoạt động như một môi giới trung gian giữa trình duyệt Web và Database Server, nhờ đó không cần phải cài đặt ứng dụng đòi hỏi cao về mặt bảo trì cho người dùng đầu cuối . Trong hình 1.8 dưới đây, ta có một giao diện, những đối tượng bên trong để thực hiện công việc nào đó cùng với những dịch vụ. Hình vẽ cho thấy tất cả những công việc chính đều đặt trên server, trên browser (client) chỉ còn mỗi user-interface. Web Browser Internet/Intranet Network Network User Interface Application Server Data service objects Web server Business Objects Web Interface Database Hình 1.8 Đối với Web server, thay vì user-interface, ta sẽ có Web-interface. Đây là một lớp chương trình tương tác với Web server nhằm mục đích giao tiếp với client. Web-interface đóng vai trò như lớp keo giữa những đối tượng và trang HTML được gửi tới browser của client. Web-interface cung cấp HTML cho browser thông qua Web server và nhận những input từ user thông qua browser và Web server. Có nhiều công nghệ được dùng để xây dựng Web-interface này, chẳng hạn như CGI, ISAPI, ASP . . .Giữa những công nghệ này, có những ưu và nhược điểm khác nhau, tuỳ theo yêu cầu của ứng dụng mà ta sẽ chọn công nghệ thích hợp. 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 2.1. Tổng quan về cơ sở dữ liệu (CSDL) 2.1.1. Thế nào là một CSDL? CSDL là một tập hợp các dữ liệu có liên hệ với nhau được tổ chức và lưu trữ lại trên các thiết bị lưu trữ tin. Nã cho phép nhiều người sử dụng, nhiều chương trình ứng dụng với các mục đích khác nhau đồng thời truy cập và khai thác. D÷liÖu vµo Xö lý D÷ liÖu ra D÷ liÖu l­u tr÷ 2.1.2. Các mô hình CSDL. Nhìn chung mọi ứng dụng CSDL đều bao gồm các phần: Thành phần xử lý ứng dông ( Application procesing compoents) Thành phần phần mềm CSDL ( Database software components) Bản thân CSDL (The database itselt) Thông thường có 5 mô hình kiến trúc dùa trên cấu hình phân tán về truy nhập dữ liệu của hệ thống máy tính Client/Server: Mô hình CSDL tập trung (Centralized database model) Mô hình CSDL theo kiểu File-Server (File-Server database model) Mô hình xử lý từng phần CSDL (Database extract processing model) Mô hình CSDL Client/ Server ( Client/ Server database model) Mô hình CSDL phân tán (Distributed database model) 2.1.2.1. Mô hình CSDL tập trung. Trong mô hình này, các thành phần xử lý ứng dụng, phần mềm CSDL và bản thân CSDL đều ở trên cùng một bộ vi xử lý. Ví dụ người dùng máy tính cá nhân có thể chạy các chương trình ứng dụng có sử dụng phần mềm CSDL Oracle để truy nhập tới CSDL nằm trên đĩa cứng của một cá nhân đó. Khi các thành phần ứng dụng, phần mềm CSDL và bản thân CSDL cùng nằm trên một máy tính thì ứng dụng đã thích hợp với mô hình tập trung. Hầu hết công việc xử lý luồng thông tin chính được thực hiện bởi nhiều tổ chức mà vẫn phù hợp với mô hình tập trung. Ví dụ một bộ xử lý mainframe chạy phần mềm CSDL IMS hoặc DB2 của IBM có thể cung cấp cho các trạm làm việc ở các vị trí phân tán sự truy cập nhanh chóng tới CSDL trung tâm. Tuy nhiên, trong rất nhiều hệ thống như vậy, cả ba thành phần của ứng dụng CSDL đều thực hiện trên cùng một máy mainframe do đó cấu hình này cũng tương tự mô hình tập trung. 2.1.2.2. Mô hình CSDL theo kiểu File – Server. Trong mô hình CSDL theo kiểu File – Server các thành phần ứng dụng và phần mềm CSDL ở trên một hệ thống máy tính và các file vật lý tạo nên CSDL nằm trên hệ thống máy tính khác. Một cấu hình như vậy thường được dùng trong môi trường cục bộ, trong đó một hay nhiều hệ thống máy tính đóng vai trò của Server, lưu giữ các file dữ liệu cho hệ thống máy tính khác thâm nhập tới. Trong môi trường File-Server, phần mềm mạng được thi hành và làm cho phần mềm ứng dụng cũng như phần mềm CSDL trên hệ thống của người dùng cuối coi các file hoặc CSDL trên Server thực sự như là trên máy tính của chính họ. Mô hình File-Server rất giống với mô hình tập trung. Các file CSDL nằm trên máy khác với các thành phần ứng dụng và phần mềm CSDL. Tuy nhiên, các thành phần ứng dụng và các phần mềm CSDL có thể có cùng một thiết kế để vận hành một môi trường tập trung. Thực chất phần mềm mạng đã làm cho phần mềm ứng dụng và phần mềm CSDL tưởng rằng chúng đang truy xuất CSDL trong môi trường cục bộ. Một môi trường nh­ vậy có thể phức tạp hơn môi trường tập trung bởi vì phần mềm mạng có thể phải thực hiện cơ chế đồng thời cho phép nhiều người sử dụng cuối có thể truy cập vào cùng CSDL. 2.1.2.3. Mô hình xử lý từng phần CSDL Trong một mô hình khác trong đó một CSDL ở xa có thể được truy cập bởi phần mềm CSDL, được gọi là xử lý dữ liệu từng phần. Với mô hình này, người sử dụng có thể ở tại một máy tính cá nhân kết nối với hệ thống máy tính ở xa nơi có dữ liệu mong muốn. Người sử dụng sau đó có thể tác động trực tiếp đến phần mềm chạy trên máy ở xa và tạo yêu cầu để lấy dữ liệu từ CSDL đó. Người sử dụng cũng có thể chuyển dữ liệu từ máy tính ở xa về chính máy tính của mình vào đĩa cứng và có thể thực hiện việc sao chép bằng phần mềm CSDL trên máy cá nhân. Với cách tiếp cận này, người sử dụng phải biết chắc chắn là dữ liệu nằm ở đâu và làm nh­ thế nào để truy nhập và lấy dữ liệu từ một máy tính ở xa. Phần mềm ứng dụng đi kèm cần phải có trên cả hai hệ thống máy tính để kiểm soát sự truy cập và chuyển dữ liệu giữa hai hệ thống. Tuy nhiên, phần mềm CSDL chạy trên hai máy không cần biết rằng việc xử lý CSDL từ xa đang diễn ra vì người sử dụng tác động tới chúng một cách độc lập. 2.1.2.4. Mô hình CSDL Client/Server. Trong mô hình CSDL Client/Server, CSDL nầm trên một máy khác với một máy có thành phần xử lý ứng dụng. Nhưng phần mềm CSDL được tách ra giữa hệ thống Client chạy các chương trình ứng dụng và hệ thống Server lưu trữ dữ liệu. Trong mô hình này, các thành phần xử lý ứng dụng trên hệ thống Client đưa ra yêu cầu cho phần mềm CSDL chạy trên máy Client, phần mềm này sẽ kết nối với phần mềm CSDL chạy trên Server. Phần mềm CSDL trên Server sẽ truy cập vào CSDL và gửi trả kết quả cho máy Client. Mới nhìn, mô hình CSDL Client/Server có vẻ giống như mô hình File-Server. Với mô hình File-Server, thông tin gắn với sự truy cập CSDL vật lý phải chạy trên toàn mạng. Một giao tác yêu cầu nhiều sự truy cập dữ liệu có thể gây ra tắc nghẽn lưu lượng truyền trên mạng. Giả sử một người dùng cuối tạo một query để lấy dữ liệu tổng số, yêu cầu đòi hỏi lấy dữ liệu từ 1000 bản ghi với cách tiếp cận File-Server nội dung của tất cả 1000 bản ghi phải đưa lên mạng, vì phần mềm CSDL chạy trên máy người sử dụng phải truy cập từng bản ghi để thoả mãn yêu cầu của người sử dụng. Với cách tiếp cận CSDL Client/Server, chỉ có query khởi động ban đầu và kết quả cuối cùng đưa lên mạng, phần mềm CSDL chạy trên máy lưu giữ CSDL sẽ truy cập các bản ghi cần thiết, xử lý chúng và gọi các thủ tục cần thiết để đưa ra kết quả cuối cùng. Trong mô hình CSDL Client/Server, thường nói đến các phần mềm front-end software và back-end software. Front-end software được chạy trên một máy tính cá nhân hoặc chạy trên một workstation và đáp ứng yêu cầu đơn lẻ riêng biệt, phần mềm này đóng vai trò của Client trong ứng dụng CSDL Client/Server và thực hiện các chức năng hướng tới nhu cầu người dùng cuối cùng. Phần mềm front-end software thường chia thành các phần sau: End User database software: Phần mềm CSDL này có thể được thực hiện bởi người sử dụng cuối trên chính hệ thống của họ để truy nhập các CSDL cục bộ nhỏ còng nh­ kết nối với các CSDL lớn hơn trên trên CSDL Server. Simple query and reporting software: Phần mềm này được thiết kế để cung cấp các công cụ dễ dàng hơn trong việc lấy dữ liệu từ CSDL và tạo các báo cáo đơn giản từ CSDL đã có. Data analysic software: Phần mềm này cung cấp các hàm về tìm kiếm, khôi phục, chúng có thể cung cấp các phân tích phức tạp cho người dùng. Application development tools: Các công cụ này cung cấp các khả năng về ngôn ngữ mà các nhân viên hệ thống thông tin chuyên nghiệp sử dụng để xây dựng các ứng dụng CSDL của họ. Các công cụ ở đây bao gồm các công cụ về thông dịch, biên dịch đơn đến các công cụ CASE (Computer Aided Software Enginerring), chúng tự động tất cả các bước trong quá trình phát triển ứng dụng và sinh ra chương trình cho các ứng dụng CSDL. Database administration Tools: Các công cụ này cho phép người quản trị CSDL sử dụng máy tính cá nhân hoặc trạm làm việc để thực hiện việc quản trị CSDL như định nghĩa các cơ sở dữ liệu, thực hiện lưu trữ hay phục hồi. Back-end software: Phần mềm này bao gồm phần mềm CSDL Client/Server và phần mềm chạy trên máy đóng vai trò là Server CSDL. 2.1.2.5. Mô hình CSDL phân tán. Cả hai mô hình File-Server và Client/Server đều giả định là dữ liệu nằm trên một bộ xử lý và chương trình ứng dụng truy nhập dữ liệu nằm trên một máy khác, còn mô hình CSDL phân tán lại giả định bản thân CSDL có ở trên nhiều máy khác nhau. Mô hình này có nhiều ưu điểm như: dễ mở rộng CSDL, hiệu năng cao ... Tuy nhiên, nó khá phức tạp, chi phí xây dựng cao và tính an toàn kém hơn so với CSDL tập trung. 1.1.3. ODBC và OLEDB, ADO 1.1.3.1. ODBC ( Open Database Connectivity) Có rất nhiều hệ thống database khác nhau, nếu không có một chuẩn chung để giao tiếp giữa những hệ database này thì khi ứng dụng chuyển đổi từ hệ database này sang hệ database khỏc, mó của chương trình phải thay đổi lại cho phù hợp. Để giải quyết tình trạng này, người ta đã đưa ra một chuẩn để các kiểu database khác nhau có thể giao tiếp được, đó là ODBC (Open DataBase Connectivity). Chuẩn ODBC, là một tập mở rộng của những thư viện liên kết động (DLL), cung cấp giao diện lập trình ứng dụng cơ sở dữ liệu chuẩn. ODBC dựa trên phiên bản được chuẩn hoá của SQL. ODBC là một lớp nằm giữa chương trình ứng dụng và hệ thống database. Với ODBC và SQL, ta có thể viết mã truy xuất đến cơ sở dữ liệu mà không phụ thuộc vào bất kỳ hệ quản trị cơ sở dữ liệu nào. Chuẩn ODBC không chỉ định nghĩa luật văn phạm của SQL mà còn định nghĩa giao diện lập trình của ngôn ngữ C cho một databse SQL. Do đó, đối tượng C hay C++ có thể truy xuất tới bất kỳ DBMS nào có driver ODBC. ODBC là lớp phục vụ giao tiếp giữa chương trình ứng dụng và hệ điều hành cũng như hệ thống file của database. ODBC nhận những yêu cầu truy xuất thông tin từ chương trình ứng dụng, chuyển nó thành ngôn ngữ mà database engine hiểu được để truy xuất thông tin từ database. Như vậy, nó cho phép chúng ta phát triển tập hợp các function và method để truy xuất đến database mà không cần phải hiểu sâu về database đó. Ví dụ, MS Access cho phép chúng ta liên kết (link) hay gắn (attach) một bảng đến database. Khi thực hiện điều này, Access sẽ yêu cầu chúng ta chọn loại database (database mà Access trực tiếp hỗ trợ), nếu không có loại database phù hợp chúng ta có thể chọn ODBC. Khi chọn ODBC, nó sẽ liệt kê tất cả các cấu hình khác nhau mà chúng ta đã thành lập, và chọn một trong số đó bất kể database engine nào. Khi ứng dụng làm việc với ODBC, nó làm việc với data source và database engine mà nó tham khảo. Khi thiết lập cấu hình cho client mà cài đặt những kết hợp driver với database. Những kết hợp này sẽ được đặt tên và được sử dụng khi chúng ta muốn yêu cầu kết nối để truy xuất đến database đó. Những kết hợp giữa database và driver gọi là những Data Source Name hay những DSN. Khi muốn mở một database thông qua ODBC, chúng ta phải cung cấp DSN, UserID và Password. ODBC sẽ lấy những thông số mà chúng ta đã thiết lập cấu hình sẵn (trong Control Panel - ODBC32) để tạo kết nối. Những thành phần chung của DSN : DSN : Tên DSN mà chúng ta đã đặt khi thiết lập cấu hình ODBC UID : UserID được sử dụng để login vào database PWD : Password được sử dụng khi login Như vậy, để truy xuất đến các database thông qua ODBC, ta phải cài đặt driver cho database đó. ODBC có nhiều driver để hỗ trợ cho các database khác nhau nhằm chuyển các bảng tính hay các tập tin văn bản thành data source. Hệ điều hành căn cứ vào thông tin được ghi bởi ODBC Administrator trong Registry để xác định cấp của ODBC driver giao tiếp với data source. Việc nạp ODBC driver là "trong suốt" (transparent) đối với chương trình ứng dụng. Trong môi trường mạng, ODBC đảm nhận luôn cả việc xử lý những vấn đề truy xuất dữ liệu trên mạng như việc truy xuất đồng thời hay giải quyết tranh chấp. Tóm lại, ODBC là một giao tiếp lập trình chuẩn cho người phát triển ứng dụng và nhà cung cấp database. Trước khi ODBC trở thành một chuẩn không chính thức cho các chương trình ứng dụng trên Windows giao tiếp với các hệ thống database, người lập trình phải sử dụng các ngôn ngữ riêng cho mỗi database mà họ muốn kết nối tới. Khi ODBC ra đời thì người lập trình không còn bận tâm về điều này nữa, họ có thể truy xuất đến các database khác nhau bằng các thủ tục và hàm như nhau. Mã của chương trình ứng dụng không thay đổi khi data source chuyển từ hệ thống database này sang hệ thống khác (ví dụ từ Oracle sang SQL server). Ưu điểm và nhược điểm của ODBC Vì ODBC cung cấp việc truy xuất đến bất kỳ dạng database thông dụng có sẵn, do đó tạo nên sự uyển chuyển trong những ứng dụng. Ta có thể chuyển ứng dụng từ hệ thống database này sang hệ thống database khác mà không tốn nhiều chi phí và công sức. DSN của ta có thể tham khảo đến bất kỳ một database nào. Điều này cho phép ta có thể tham khảo đến bất kỳ một database nào. Như vậy, ta có thể phát triển ứng dụng theo một hệ thống database này (chẳng hạn như Microsoft Access) nhưng lại biến đổi thành sản phẩm sử dụng hệ thống database khác (ví dụ như Microsoft SQL Server) bằng cách đơn giản là thay đổi driver được sử dụng DSN mà chúng ta định nghĩa trong ứng dụng. Việc gọi hàm qua lớp ODBC đến database engine không phải là không tổn phí. ODBC phải hỗ trợ khả năng chuyển đổi các hàm được gọi từ ứng dụng, việc này cần phí tổn cho việc xử lý và làm quá trình truy xuất database 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 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 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

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

  • doc27615.doc