Vấn đề tích hợp Web với 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 30)

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 lu 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 lu 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

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. 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 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 30)

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

(90 trang)
w