Monday, October 26, 2009

ASP & lập trình máy chủ

Mạng máy tính ngày nay đã trở thành một thành phần quan trọng trong ngành truyền thông và cuộc sống hàng ngày. Song song với việc phát triển của mạng là sự phát triển của một hướng mới trong lập trình, đó là lập trình mạng. Với sự bùng nổ thông tin trên toàn cầu, sự ra đời của WWW( world wide web), đặt ra yêu cầu phải xử lý thông tin một cách nhanh chóng, chính xác giữa các web server với client. Ðể giải quyết vấn đề này một trong những công cụ lập trình máy chủ phổ biến hiện nay là ASP. Bài viết không đi vào chi tiết các thủ thuật lập trình mà cung cấp cho bạn đọc một cái nhìn tổng quát , nguyên lý về ASP cũng như sẽ so sánh nó với một số ngôn ngữ lập trình máy chủ khác như Perl, Rexx,Python.

ASP là gì ?

Microsoft Active Server Pages (ASP) không hẳn là một ngôn ngữ lập trình , Microsoft gọi nó là môi trường server-side scripting, môi trường này cho phép tạo và chạy các các ứng dụng Web server động , tương tác và có hiệu quả cao. Ðể làm việc trong môi trường này , các ASP coder thường sử dụng VBScript hoặc JavaScript, cả hai loại này đều tự động hỗ trợ ASP.

Trong các HTML, mỗi tag được bắt đầu và kết thúc bởi cặp "< />" , ASP cũng tương tự như vậy. Ðể đánh dấu nơi nào ASP script bắt đầu và kết thúc dùng cặp lệnh "<% %>".

Các đoạn ASP script có thể xuất hiện ở mọi nơi trong trang HTML, ASP & HTML có sự gắn bó chặt chẽ với nhau. Với ASP ta có thể chen các script thực thi được vào trực tiếp các file HTML . Khi đó việc tạo ra trang HTML và xử lý script trở nên đồng thời, điều này cho phép tạo ra các tương tác của Web site một cách linh hoạt uyển chuyển , có thể chen các thành phần HTML động vào trang Web tùy vào từng trường hợp cụ thể.

VBScript là ngôn ngữ mặc định của ASP, nếu muốn sử dụng một ngôn ngữ khác thì chúng ta cần phải định nghĩa ngôn ngữ. Tại đầu trang thêm dòng :

<%@LANGUAGE=Tên ngôn ngữ%>

VBScript dễ học và rất tiện lợi nếu chúng ta đã học qua VB, các ví dụ trong bài báo này đều viết bằng VBScript.

Các ASP script được viết và đặt trong các file có phần mở rộng là .asp . Khi cho script chạy, ví dụ như : http://msdn.microsoft.com/default.asp thì mọi quá trình xử lý của file default.asp sẽ diễn ra trên server thay vì chạy ở client , Web server của sẽ làm mọi công việc cần thiết để tạo ra một trang kết quả dạng HTML(Hypertext Markup Language) , như thế không cần phải bận tâm rằng các Web browser có thể xử lý trang Web hay không vì server đã làm mọi việc.

Các tính chất và ưu điểm của ASP

Các ASP script thông thường chạy trên các server cài IIS ( Microsoft Internet Information Server). Nhưng ASPvẫn có thể làm việc với đa số các Web server trên NT (Netscape, Oreilly ) sử dụng ChiliSoft ASP, có thể trên một số hệ điều hành khác nh Linux, SunSolaris.

Quy trình thực hiện một của ASP như sau : khi một user thông qua trình duyệt web gửi yêu cầu tới một file .asp ở server thì script chứa trong file đó sẽ được chạy trên server và trả kết quả về cho browser đó. Khi Web server nhận được yêu cầu tới một file .asp thì nó sẽ đọc từ đầu tới cuối file .asp đó, thực hiện các lệnh script trong đó và trả kết quả về cho Web brower là một trang HTML.

Thực ra thì quá trình tạo trang HTML và thực thi script là hai quá trình riêng biệt, script sẽ được ASP engine dịch và thực thi trước khi chuyển kết quả cho Web server, tới giai đoạn này các mã HTML và kết quả sẽ kết hợp để tạo nên một trang Web. Việc nhúng HTML và script chỉ để làm đẩy nhanh tốc độ phát triển ứng dụng mà thôi. Do môi trường hoạt động là mạng nên một script ASP khi được viết ra có thể sử dụng được ở mọi nơi, không cần trình biên dịch hay kết nối.

Các ASP script được viết dựa trên các ngôn ngữ hướng đối tượng nên rất tiện lợi, sẵn có các object đi kèm như: Request, Response, Application, Server, Session. Tận dụng được các ActiveX components như : Database access , Content linking, Collaboration Data Object, Browser capabilities,File Access, ... Hơn nữa nó cũng có thể tận dụng được components từ các nhà phân phối khác, cung cấp dưới dạng các file .dll

Những tính chất trên đem đến cho ta những lợi ích xác thực, cho phép tạo ra các ứng dụng Web thương mại có tương tác chứ không chỉ đơn thuần là phổ biến các nội dung tĩnh. Ví dụ như để lưu giữ lại thông tin về các khách hàng đã ghé thăm qua web site của mình, các web builder có thế dùng asp để tạo ra các file cơ sở dữ liệu khách hàng lưu trên máy chủ, khi cần có thể tiện tra cứu.

Các Objects & Components cơ bản

Object là những đoạn chương trình có khả năng thực hiện những công việc cơ bản nào đó. Mỗi object là một kết hợp giữa lập trình và dữ liệu mà có thể xử lý như một đơn vị thống nhất. Các ASP object cho phép chúng ta giao tiếp tương tác với cả máy chủ lẫn trình duyệt, thông thường chúng ta dùng vài object trong các scripts. Các object này đã sẵn có nên ta chỉ cần nhớ cách sử dụng chúng.

Request Object

Request object cho phép lấy thông tin thông qua một HTTP request. Chúng ta có thể dùng Request object để đọc URL, truy cập thông tin từ một form, đọc cookies và các HTTP header.

Response Object

Ressponse object là chìa khóa để gửi thông tin tới user, là đại diện cho phần thông tin do server trả về cho Web browser. Chúng ta có thể viết lên màn hình, tái định hướng các trang, tạo các cookies sử dụng Response object.

Application Object

Sử dụng Application object chúng ta có thể điều khiển các đặc tính liên quan đến đến việc khởi động và dừng ứng dụng, cũng như việc lưu trữ các thông tin có thể được truy nhập bỏi các ứng dụng nói chung.

Server Object

Server object cho phép thực thi một chuỗi các tác vụ chẳng hạn như ánh xạ một đường dẫn ảo tới một đường dẫn vật lý và tạo một instance của một componnet.

Session Object

Sử dụng object này chúng ta có thể lưu thông tin liên quan tới từng user đã truy nhập vào site của bạn.

Khác với các object, các ASP components là các điều khiển ActiveX ghép nối với ASP để đơn giản hoá các thủ tục thông thường. Chúng ta sẽ lướt qua số components thường được sử dụng.

Browser Capabilities

Component này cho phép xác định trình duyệt của user là gì và những tính năng nào được hỗ trợ bởi trình duyệt đó.

Collaboration Data Objects (CDO)

CDO được liên kết chặt chẽ vói IIS SMTP server, CDO hỗ trợ chúng ta gửi và nhận email. Ví dụ với CDO chúng ta có thể xử lý một form mà không cần nhận biết đó là Perl script hay CGI.

Database Access

Một trong những tài sản lớn nhất mà ASP có được là khả năng thâm nhập vào các cơ sở dữ liệu. ASP thường làm việc với hai người bạn đồng nghiệp là Access và hệ cơ sở dữ liệu SQL.Component rất hữu ích giúp chúng ta có thể kết nối vào một cơ sở dữ liệu bằng cách sử dụng ActiveX Data Object để viết nội dung lên màn hình trình duyệt và tạo lập hoặc cập nhật các file cơ sở dữ liệu.

File Access

File Access component chứa đựng các phương thức và thuộc tính có thể sử dụng để truy cập vào các file trên máy tính. Thông qua component này ta tạo ra một object là FileSystemObject giúp ta thực hiện mốt số công việc như tạo,đọc file,...

Ngoài ra còn có những components được cung cấp miễn phí hoặc phải mua từ các nhà phân phối khác như :

Microsoft ASP Component Catalog

( http://msdn.microsoft.com/workshop/server/components/catalog.asp )

ASP Central ( http://www.aspcentral.com/ac/ )

Active Server Pages.Com ( http://www.activeserverpages.com/components/toc.asp )

Một ví dụ về ASP script

Các phần trên đã giúp bạn có một nhìn nhận cơ bản, mục này sẽ đưa ra một ví dụ đơn giản để hình dung rõ hơn cách viết mã lệnh và thưởng thức hương vị sức mạnh của ASP. Một điều cần lưu ý là để test chương trình chúng ta cần phải cài bộ IIS (Internet Information Server) hoặc bộ PWS ( Personal Web Server) , sau đó máy tính của chúng ta sẽ trở thành một local server. Hoặc chúng ta upload các file test lên một server nào đó cho phép chạy các asp script. Trong hai bộ này đều có phần help hướng dẫn ta về các hàm và lệnh, nếu các hàm trong ví dụ này bạn chưa nắm được thì có thể tra cứu trong đó.

Có một điều gây khó khăn cho chúng ta khi muốn tìm kiếm các mã lệnh ASP đó là khi truy nhập vào một site dùng ASP ví dụ http://msdn.microsoft.com/default.asp chúng ta không thể xem mã nguồn của này được. Sự thực những thông tin bạn xem trên browser đã được default.asp xử lý và trả về mã Html. Một ví dụ khác, nếu bạn thêm dòng <% Response.Write "Ðây là " & strName %> vào trang web của bạn (giả sử strName được gán bằng "TinHọc&ÐờiSống") thì khi chạy và xem mã nguồn bạn sẽ thấy dòng : Ðây là TinHọc&ÐờiSống.

Còn bây giờ chúng ta hãy mở một trình soạn thảo nào đó, Notepad chẳng hạn và viết những mã lệnh sau:

<title>Ví dụ 1 về ASP Script</title>

<% Response.Write "Chào bạn" %>


Bây giờ là <%= Time %>

Sau khi viết xong ghi file này tên là vd1.asp và chạy, trên màn hình browser sẽ xuất hiện dòng "Chào bạn Bây giờ là ..." . Trong ví dụ này ta dùng object Response và hàm Time của VBScript để đưa thông tin ra màn hình của user. Chúng ta có thể thấy rõ là asp đã được xử lý trên server một cách dễ dàng bằng cách chỉnh lại đồng hồ máy tính của bạn và chạy lại script trên thì vẫn báo giờ chuẩn vì giờ ở đây lấy ở máy chủ chứ không lấy giờ ở máy client. Ví dụ trên chỉ là một minh họa rất thô sơ cho ASP, bạn có thể viết các chương trình khác phức tạp hơn nhiều.

Những bàn luận khác về ASP

Phần này chúng ta sẽ so sánh ASP một số ngôn ngữ lập trình máy chủ khác như Perl, Python ,... Theo quan điểm cá nhân thì tôi thích ASP vì rất dễ học, mã lệnh tương tự như VisualBasic , dễ thực hành thí nghiệm. So với học Perl thì chúng ta mất ít thời gian hơn nhiều để học ASP. Có nhiều chuyên gia cho rằng ASP có độ bảo mật kém hơn CGI, theo tôi có thể lí giải điều này là do ASP chạy trên các server với hệ điều hành mạng của Microsoft, mà Microsoft vẫn có tiền lệ là tính bảo mật hệ thống kém, không thể bì được với UNIX. Nhưng mặt khác ASP lại có tính năng truy cập cơ sở dữ liệu tuyệt vời , nhất là các đối với các SQL server, nếu so với CGI thì ASP hơn hẳn mặt này. Thêm vào đó một trong những ưu điểm lớn nhất của ASP là nó đã mở ra một cuộc cách mạng về phát triển ứng dụng nhanh trên nền Web (RAD), cho phép người thiết kế có thể phát triển các trang Web có khả năng thực thi một cách nhanh chóng và trực quan mà không cần phải viết các chương trình CGI phức tạp nữa. Ði theo xu hướng này ngày nay có một số các ngôn ngữ mới được đánh giá còn hay hơn ASP nhiều như là ColdFusion, Php3 (trên Unix) và chạy ổn định hơn rất nhiều, còn tính năng truy nhập cơ sở dữ liệu cũng hay không kém ASP. ASP đúng theo tên của nó là Active Server Pages có nghĩa là hoàn toàn thực thi trên server, chứ không trên client, do đó tất cả các lỗi xẩy ra chỉ có thể bởi server hoặc trong trang Web có chứa các script client (JavaScript,VBscript) mà chỉ một số loại client nhất định mới hiểu được ..

Kết :

Trong phạm vi một bài báo không thể nêu đầy đủ mọi mặt của một hệ thống như ASP, hy vọng qua bài viết sẽ giúp các bạn mới tìm hiểu biết thêm nhiều điều. Dưới đây là một số tài liệu tham khảo rất tốt về ASP mà các bạn có thể tìm đọc

[1] MSDN Library / Active Server Pages & VisualBasic Scripting

[2] http://www.developer.com

[3] http://www.activeserverpages.com

[4] http://www.zdnet.com/developer/

[5] http://www.builder.com

No comments:

Post a Comment