Xây dựng ứng dụng WAP với IIS và ASP
Đỗ Ngọc Minh Viện CNTT, ĐH Quốc Gia Hà Nội Email: minhdn@vnu.edu.vn 1. Giới thiệu WAP là viết tắt của Wireless Application Protocol (Giao thức ứng dụng không dây), được kế thừa các chuẩn Internet (HTML, XML và TCP/IP), ...
Đỗ Ngọc Minh
Viện CNTT, ĐH Quốc Gia Hà Nội
Email: minhdn@vnu.edu.vn
1. Giới thiệu
WAP là viết tắt của Wireless Application Protocol (Giao thức ứng dụng không dây), được kế thừa các chuẩn Internet (HTML, XML và TCP/IP), cho phép các thiết bị cầm tay có thể kết nối tới Server truy xuất thông tin và các dịch vụ. Giao thức này được thiết kế cho các trình duyệt siêu nhỏ (micro browser) nhờ sử dụng ngôn ngữ đánh dấu WML (Wireless Markup Language). WML được định nghĩa như là ứng dụng XML 1.0
Công nghệ Wap ra đời vào năm 1997 bởi Wap forum (www.wapforum.org), bao gồm Ericsson, Motorola, Nokia, và Unwired Planet. Công nghệ Wap đang là công nghệ chuẩn chủ đạo cho các ứng dụng phục vụ trên các thiết bị không dây như các điện thoại di động kỹ thuật số. Phiên bản mới nhất gần đây là phiên bản Wap 2.0.
Các nhà cung cấp dịnh vụ Internet hiện nay không những chú trọng phát triển, cập nhật thông tin cho Website của họ mà còn rất chú trọng tới các thông tin dành cho WAP. Với sự ra đời của ngày càng nhiều các loại điện thoại có khả năng hỗ trợ Wap cùng với sự phát triển của hệ thống thông tin di động, chắc chắn Wap sẽ có một vai trò quan trọng trong xã hội hiện đại.
Một số ứng dụng Wap điển hình đang được áp dụng:
- Kiểm tra thông tin về chỗ trên tàu.
- Đặt mua vé
- Kiểm tra chuyến bay
- Xem dự báo thời tiết
- Xem giá cổ phiếu
- Tra cứu danh bạ điện thoại
- Check mail
- Xem kết quả bóng đá…
Để vừa vặn hiển thị các trang thông tin lên các thiết bị không dây cỡ nhỏ, Wap sử dụng trình duyệt siêu nhỏ.
Một trình duyệt siêu nhỏ thực chất là một phần mềm nhỏ tốn rất ít tài nguyên bộ nhớ cũng như các yêu cầu về phần cứng và CPU. Nó có thể hiển thị thông tin nhờ ngôn ngữ đánh dấu gọi là WML
Trình duyệt siêu nhỏ cũng có khả năng thông dịch các phiên bản thu nhỏ của Java Script, gọi là WML Script.
Một số các trình duyệt Wap thông dụng hiện nay như: Klondike, Deck-it, Gelon…Có thể download các phần mềm trình duyệt này về để thực thi và hiển thị các trang wml trên máy tính của bạn từ các địa chỉ sau:
Deck-it: http://www.Pyweb.com
Klondike: http://www.apachesoftware.com …
Gelon: http://www.gelon.net
WML là viết tắt của Wireless Markup Language. Nó là ngôn ngữ đánh dấu kế thừa từ HTML, tuy nhiên WML dựa trên XML, do đó nó chặt chẽ hơn HTML.
WML được sử dụng để tạo ra các trang có khả năng hiển thị trên WAP browser. Các trang trên WML gọi là DECKS. Decks được thiết lập bởi tập hợp các CARDS.
Ví dụ một trang WML :
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="card1" title="Minh hoa card 1">
<p>
Chao ban da den voi wml
</p>
</card>
</wml>
Bạn có thể tham khảo thêm về cú pháp của WML tại địa chi www.w3schools.com/wap .
![]() |
![]() |
Một số so sánh minh họa sự khác biệt giữa HTML và WML
HTML | WML |
- Các trang có đuôi .htm hoặc .html- Hiển thị nhờ trình duyệt Web (Web browser)IE, Netscape, Opera … | - Các trang có đuôi .wml- Hiển thị nhờ trình duyệt Wap (Wap browser)Klondike, Deck-it, Gelon… |
Cú pháp không chặt chẽ | Cú pháp rất chặt chẽ do sử dụng công nghệ XML |
Một trang html được gọi là 1 Web page | Một trang wml đựợc gọi là một card |
Sử dụng Java Script để chạy các ứng dụng đơn giản trên ClientMã Java Script có thể được trộn lẫn trong mã HTML | Sử dụng WML Script (chính là Java Script thu gọn)Mã WML Script phải nằm ngoài trang WML. |
Cho phép hiển thị thông tin cực kỳ đa dạng, phong phú (Các hiệu ứng âm thanh hình ảnh…) | Bị giới hạn bởi màn hình thiết bị (thường là rất bé), nếu có hiển thị ảnh thì cũng phải sử dụng format riêng, ví dụ WBMP có kích thước và dung lượng file rất nhỏ, ngoài ra, đây là ảnh đen trắng. |
2. Cấu hình phần mềm máy chủ IIS (Internet Information Servies) cho phép thực thi chức năng của Wap Server
Như ta đã biết, từ Windows 2000, IIS được tích hợp sẵn trong bộ cài và là một thành phần cài đặt tùy chọn (option). Các cấu hình mặc định trong IIS cho phép IIS là 1 server phục vụ các ứng dụng Web, tuy nhiên muốn IIS của ta có thêm khả năng phục vụ các ứng dụng Wap, cần thêm một số thông số như sau:
- Từ menu Start, chọn Setting - Control Panel – Administrative tools - Internet Services Manager. Mở rộng dấu + ở tên máy và click chuột phải vào default web site
- Lựa chọn properties.
- Chọn Tab HTTP headers, ở mục MIME map, chọn file types
- Click New Type.
- Gõ wml vào ô Extension
- Gõ text/vnd.wap.wml vào ô Content MIME.
- Lặp lại các bước từ 4 đến 6 và gõ vào các thông số theo bảng sau
Bảng 1: MIME Types and File Extensions | |
Type | File Extension |
text/vnd.wap.wml | .wml |
application/vnd.wap.wmlc | .wmlc |
text/vnd.wap.wmlscript | .wmls |
application/vnd.wap.wmlscriptc | .wmlsc |
Image/vnd.wap.wbmp | .wbmp |
Để xây dựng các ứng dụng WML cho phép tương tác với người sử dụng giống như công việc xây dựng trang Web động ta cũng lựa chọn công nghệ ASP (Active Server Pages) cho phép thực thi các ứng dụng trên máy chủ trước khi trả lời Client. Nếu bạn đã từng sử dụng ASP cho các ứng dụng Web thì bạn sẽ thấy một điều cơ bản là ASP sau khi thực thi trên máy chủ sẽ trả về cho Client mã HTML là mã mà trình duyệt có thể hiểu được. Như vậy, khi chuyển sang xây dựng ứng dụng trên WML, để hiển thị được trang trả về trên wap browser thì bạn chỉ cần chỉ định ASP trả về mã WML là xong. Các thao tác còn lại giống hệt như truy xuất Web động.
Hiện tại WML của ta vẫn ở trạng thái tĩnh, ta cần phải thêm vào asp.dll để IIS có khả năng tạo ra văn bản wml. Để làm điều này, trong mục Properties của Default webserver, chọn tab Home Dỉectory, Click Configuration, bảng sau hiện ra:

ta chọn add, sau đó điền các nội dung vào bảng Add/Edit Application Extension Mapping như sau:

Như vậy là ta đã cấu hình xong IIS, ngoài ra ở trên đầu mỗi trang asp, muốn hiển thị trên wap browser ta cần thêm đoạn lệnh sau:
<% response.ContentType = "text/vnd .wap.wml" %>
Sau khi cấu hình máy chủ, ta có thể tạo riêng 1 thư mục trên ổ C, ví dụ: C:WAP-applications, sau đó chép file wml ở trên đặt tên file là index.wml. Ngoài ra, ta gõ thêm file sau và đặt tên là index.asp
<% response.ContentType = "text/vnd.wap.wml" %>
<?xml version="1.0"?>
<wml>
<card id="card1" title="Minh hoa asp">
<p>
<%response.write("Chao ban")%>
</p>
</card>
</wml>
Thiết đặt đường dẫn ảo (Virtual directory) tới thư mục này mang tên wap, sau đó khởi động trình duyệt Wap, gõ vào ô địa chỉ dòng chữ: http://localhost/wap/index.wml và http://localhost/wap/index.asp Nếu cả hai trường hợp trên màn hình trình duyệt hiện ra nội dung Chao ban có nghĩa là máy chủ của ta đã sẵn sàng để chạy các ứng dụng tiếp theo.
3. Minh họa ứng dụng hiển thị và cập nhật CSDL qua Wap Browser
3.1. Chúng ta cùng nhau xây dựng một ứng dụng nhỏ cho phép hiển thị CSDL là 1 danh sách bao gồm tên và số điện thoại tương ứng của người đó. CSDL của ta được tạo trên Access, có tên là danhba.mdb, gồm 1 bảng danhsach và 2 trường ten (kiểu text) và dienthoai(kiểu số) như sau:
Table: danhsach | |
Ten | Text |
Dienthoai | Number |
Các file ta sẽ xây dựng tương ứng gồm:
Display.asp cho phép hiển thị CSDL
Form.wml cho phép nhập dữ liệu
Insert.asp cho phép cập nhật dữ liệu từ form vào CSDL
3.2. Mã nguồn từng file tương ứng:
Display.asp
<% Response.ContentType = "text/vnd.wap.wml" %>
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="Danhbadt">
<p align="left"><small><b>Danh ba DT </b></small></p>
<%
strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("danhba.mdb")
set conn = server.createobject("ADODB.Connection")
conn.open strconn
set rs = server.createobject("adodb.recordset")
Query = "Select * from danhsach"
rs.open Query, conn
if not rs.eof Then rs.movefirst
Do While NOt Rs.EOF
%>
<p align="left">
<small>
<h2><%=rs("ten")%></h2>
<%=rs("dienthoai")%><br/>
</small>
</p>
<%
rs.movenext
Loop
else
response.write("<p align='left'><small>D.sach chua co ai</small></p>")
End if
rs.close
Set conv = nothing
set rs= nothing
set conn = nothing
%>
</card>
</wml>
Form.wml
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card title="Input">
<p>
Ten: <input type="text" name="ten" size="15"/><br/>
Dienthoai: <input type="text" name="dienthoai" size="15"/>
</p>
<do type="accept" label="Send">
<go href='insert.asp' method="post">
<postfield name="ten" value="$ten"/>
<postfield name="coquan" value="$coquan"/>
<postfield name="dienthoai" value="$dienthoai"/>
</go>
</do>
</card>
</wml>
Insert.asp
<%
Dim adoCon
Dim rsAddnew
Dim strSQL
set rs = server.createobject("adodb.recordset")
Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("danhba.mdb")
Set rsAddnew = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM danhsach;"
rsAddnew.CursorType = 2
rsAddnew.LockType = 3
rsAddnew.Open strSQL, adoCon
rsAddnew.AddNew
rsAddnew.Fields("ten") = Request("ten")
rsAddnew.Fields("dienthoai") = Request("dienthoai")
rsAddnew.Update
rsAddnew.Close
Set rsAddnew = Nothing
Set adoCon = Nothing
Response.Redirect "danhbadienthoai.asp"
%>
</p>
</card>
</wml>
Ghi cả 3 tập tin trên vào thư mục bạn vừa tạo, khởi động Wap browser rồi gõ vào từ trình duyệt http://localhost/wap/form.wml Sau khi bạn nhập tên và số điện thoại rồi submit, nếu màn hình hiển thị tên và số điện thoại bạn vừa nhập thì có nghĩa là bạn đã thành công.
Tương tự như vậy, bạn có thể tham khảo thêm cú pháp các thẻ của WML cũng như WML Script để xây dựng cho mình các ứng dụng phong phú hơn. Riêng đối với ứng dụng CSDL bạn vừa làm, bạn có thể thêm chức năng Xóa, sửa và tìm kiếm để chương trình trên trở thành một ứng dụng hoàn chỉnh.
Chúc các bạn thành công
Tài liệu tham khảo:
1. http://www.w3schools.com/wap