Các giải pháp tích hợp Web và CSDL

Một phần của tài liệu 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 (Trang 32)

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. Nhng 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 lu thông trên mạng. ở ứng dụng chia sẻ file, đơn vị truyền nhận giữa Client và Server là một file, do đó, khi client yêu cầu thông tin từ Server thì Server sẽ trả cho Client toàn bộ một file có chứa thông tin đó. Trong khi ở mô hình hai mức thì Server có thể trả cho Client đúng những gì mà Client yêu cầu với đơn vị truyền nhận có thể tính bằng byte. Ngoài ra, hiện nay các DBMS còn cung cấp nhiều khả năng khác nh hỗ trợ giao dịch, cho phép nhiều ngời dùng cùng thao tác trên CSDL cùng lúc mà vẫn đảm bảo đợc tính toàn vẹn của dữ liệu.

1) Tính toán tập trung ở Client (fat Client-thin Server): ở loại

này, phía Client phải đảm nhận cả hai lớp là giao diện và chức năng còn Server chỉ làm nhiệm vụ của lớp CSDL. Database Server Database Server DBMS DBMS -presentation logic -business 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.

2) Tính toán tập trung ở Server (fat Server-thin Client): ở loại này, Client chỉ đảm nhiệm phần giao diện còn Server thực hiện chức năng của lớp chức năng và lớp CSDL.

Ngợc lại, với loại fat Client-thin Server thì loại này có u điểm là giảm sự lu 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 lu 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 Database Server

DBMS DBMS

Data access logic Data access logic Data access logic Data access logic

-presentation logic -presentation logic

2.2.2.2. Mô hình ba mức(3-tier) Client/Server

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.

Database Server Database Server

DBMS DBMS

Data access logic Data access logic Application Server Application Server -business logic -business logic -presentation logic -presentation logic

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 lu 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 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 nhng có thể ngắn gọn và đơn giản hơn. Không giống nh các trình biên dịch C hay C++, Perl là một trình thông dịch. Vì là một ngôn ngữ lập trình cho nên Perl cũng có đầy đủ các công cụ hỗ trợ cho nó nh tất cả các ngôn ngữ lập trình khác nh: biến, dãy, danh sách, ...

Perl đã mở rộng các chức năng của trình CGI phục vụ cho Web Server. Mở đầu cho thời kỳ viết ứng dụng biên dịch kịch bản (scipting) phục vụ cho phía máy chủ (Server side) nh ASP, JSP, ...

IASP , Servlet, ASP, JSP:

Nh ta đã biết, nhợc điểm chính của chơng trình CGI là vấn đề tốc độ. Mỗi lần thực thi chơng trình CGI, Web Server phải nạp và giải phóng chơng trình CGI ra khỏi bộ nhớ. Công nghệ Web đã đa ra rất nhiều giải pháp khắc phục yếu điểm này.

Windows cung cấp cho ta cách thức xây dựng các chơng trình CGI ở dạng th viện liên kết động DLL. ứng dụng CGI kiểu mới này còn gọi là các ứng dụng ISAPI. Chơng trình ISAPI chỉ phải nạp một lần vào bộ nhớ khi lần đầu tiên Web Server gọi nó. Do không phải nạp nhiều lần nên tốc độ thực thi đợc cải thiện đáng kể. Hơn nữa, các chơng trình ISAPI phục vụ Web Server hiệu quả và ít tốn tài nguyên hơn các chơng trình ISAPI thông thờng.

Để viết ISAPI ta có thể sử dụng bất kỳ công cụ nào trên Windows hỗ trợ việc biên dịch th viện liên kết động DLL nh Visual Basic, Delphi, ...

Về phía Java, câu trả lời tơng tự cho ISAPI của Windows đó là Servlet. Servlet là các chơng trình java chỉ cần nạp một lần vào máy ảo. Chức năng của nó cũng tơng tự nh các chơng trình CGI hay ISAPI.

Đối với ngôn ngữ kịch bản, Microsoft đa ra phơng án thiết kế các trang ASP, đó là sự kết hợp giữa các thẻ định dạng HTML và ngôn ngữ Vbscipt. Còn java đa ra phơng án thiết kế các trang JSP là sự kết hợp giữa HTML và ngôn ngữ java. ASP và JSP cần một bộ diễn dịch (ASP, JSP engine) để thông dịch chúng.

Xét về phơng diện “sức mạnh” thì Servlet, ISAPI, ASP hay JSP có thể coi là ngang nhau. Tuy nhiên, trong đề tài này em chọn ASP làm công cụ phát triển bởi nó đợc hỗ trợ thiết kế mạnh mẽ của Visual InterDev và FrontPage. Sau đây, em xin giới thiệu về ASP và một kỹ thuật lập trình liên quan – lập trình COM.

3.2. ASP ACTIVE SERVER PAGES

3.2.1. Những khái niệm mở đầu về ASP.

3.2.1.1. 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 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.

3.2.1.2. 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ụ: <html> <body>

Bạn bắt đầu với trang ASP này ngày:<%=Now%> </body>

</html>

3.2.1.3. Client side scripting.

Một Client side scripting đợc thêm vào trang html sử dụng cặp tag <script></script>. Để định nghĩa ngôn ngữ script, ta sử dụng thuộc tính language chèn vào tag <script>.

Ví dụ:

<script language=VBscript> </script>

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.

3.2.1.4. 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 <script></script> hoặc <% .. %>. Khác với Client side script, Server side sử dụng thêm thuộc tính runat=”Server”.

<script language=[scriptname] runat=”Server”> <script>

3.2.1.5. 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

3.2.1.6. 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.

3.2.2 Mô hình các đối tợng trong ASP

Client

Client ServerServer

Server Object Server Object Application Object Application Object Session Object Session Object Response Object Response Object Request Object Request Object ObjectContext Object ObjectContext Object <html> <% ASP code%> </html>

Interprest ASP code

<html>

<b>Hello</b> </html>

Gets ASP page

Hello

Web Server Client

HTTP Request

Browser creates the web page Server Respone

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.

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 để lu trữ những thông tin riêng chỉ dành cho

Một phần của tài liệu 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 (Trang 32)

Tải bản đầy đủ (DOC)

(90 trang)
w