歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 學習教程:在Linux上構建WAP網關

學習教程:在Linux上構建WAP網關

日期:2017/2/27 9:29:49   编辑:更多Linux
  實現移動服務的最熱門技術是無線應用協議(Wireless Application Protocol,WAP)。用於 WAP 的開放源代碼網關執行 Web 服務器與移動電話之間的協議轉換,本文對它的優勢進行了討論。     WAP 網關的工作原理是,通過最優化的用於無線空中下載(wireless-over-the-air)的標記語言、腳本語言和傳輸協議,使電話成為一個簡單的 Web 浏覽器。它使用 WAP 協議棧與電話交流,並將它接收到的請求轉化為普通的 HTTP。這樣,內容提供者可以可以使用任何 HTTP 服務器並利用現有的關於 HTTP 服務實現與管理的知識。     除了協議的轉換,網關還將 WML(無線標記語言,Wireless Markup Language)頁壓縮為更緊湊的格式,這樣就節省了空中的帶寬,並進一步地減少了電話處理的需求。它還將 WMLScript 程序編譯為字節代碼格式。     市場上有多種可用的商用 WAP 網關,價格昂貴。另一方面,Kannel 是一個開放源代碼網關;您不需要為它付費,您可以自行編輯源代碼,您還可以構造您自己的定制網關。由於 Kannel 是在 Linux 系統(RedHat 和 Debian)上開發,所以它可以平滑地移植到其他類 UNIX 操作系統。不過,在本文中,我只是展示了在這兩種 Linux 系統上網關的構建。     Kannel 網關體系結構   網關將處理工作負載劃分到下面兩個位置:    信使單元(bearer box),它連接到 SMS(短消息服務)中心和 CSD(電路交換路數)路由器,為 wapbox 向它們提供一個統一的接口。信使單元通過實現 WAP 棧的 WDP(無線數據報協議,Wireless Datagram Protocol)層來完成這一工作。     wapbox,WAP 棧中更高的層位於這一單元。每個會話以及它們的事務都由同一個 wapbox 來處理。     系統工作方式  信使單元自 CSD 路由器接收到 UDP(用戶數據報協議,User Datagram Protocol)數據包,檢查它們是不是 WAP 數據包,然後將它們路由到 WAP 單元。這個簡單的設計使得信使單元對每個數據包的處理最少。信使單元也發送其他單元生成的 UDP 數據包,這多少增加了一些路由處理。 wapbox 實現了 WTP(無線傳輸協議,Wireless Transaction Protocol)和 WSP(無線會話協議,Wireless Session Protocol)層。它們從電話取得類似於 HTTP 的請求,並將真正的 HTTP 請求發送到內容服務器,壓縮響應,然後將它們發回到終端。(會話被保持,以盡可能限制無線帶寬。)     基本的軟件和硬件要求   在構造網關之前,您必須有以下基本條件:     C 編譯器(CC 或 GCC),開發庫和相關工具     Gnome XML 庫(也叫 gnome-xml 和 libxml),版本 2.2.5 或更新    GNU Make     Posix 線程庫(pthread.h)     構建網關   有兩種途徑可以構建網關。第一個途徑是獲得源代碼,自己編譯並安裝它。第二個途徑是得到預編譯的二進制 RPM(RedHat 包管理器, Package Manager),然後安裝。RPM 是一個設計用來編譯和管理源代碼和二進制軟件包的程序。它也是可移植的,可以運行於不同的平台上。     首先,您需要通過 Kannel 的 Web 站點下載 Kannel 的源代碼以進行安裝。下載完成後,在命令行中輸入下面的命令來編譯源代碼:   ./configure   make     理想情況下,您將可以不出任何問題地編譯代碼。如果前面提到的庫都存在,那麼編譯是很容易的。要安裝網關,輸入下面的命令: make bindir=/usr/local/bin install。     您可以將 /usr/local/bin 目錄替換為網關將要安裝到的任何路徑。網關現在已經安裝到了您的系統上。可執行文件現在可以在 /gw 目錄下找到,名為 bearerbox、wapbox。     安裝預編譯的二進制   通過輸入下面的命令來檢查您的系統中是否已經安裝了 libxml2 XML 庫: rpm -q libxml2。     這個 XML 庫是安裝和編譯網關所需要的。從網站上下載 Kannel 的二進制 RPM 文件。以 root 身體登錄,輸入下面的命令來進行安裝。如果您有足夠的權限,那麼可能不需要進入超級用戶模式。  rpm -ihv kannel_VERSION.i386.rpm     這樣完成了安裝。_VERSION 屬性是 Kannel 二進制的版本數。     使用網關   現在來研究使用一個支持 WAP 的移動電話模擬器來使用和測試網關的基本步驟。本質上講,您將涉及到 bearerbox 和 wapbox(您剛創建的可執行文件)。     配置網關   bearerbox 和 wapbox 是網關的主要工作模塊,在配置網關之前必須得到配置。這兩個模塊由一個配置文件控制,其中有 wapbox 組和 bearerbox 組。     配置文件由成組的配置變量構成。組由空行隔開,每個變量在自己的行中定義(Kannel 配置中的每個組由組變量標識)。以井號(#)開頭的行是注釋,應該被忽略。     一個變量定義中有變量的名稱、等號(=)和變量的值。變量名中可以有除了空格和等號以外的任何字符。變量的值是一個字符串,可以有引號,也可以沒有引號。如果變量以空格開頭或結尾,或者包含特殊字符,則需要使用引號。普通的 C 轉義符在引號內有效。     使用配置文件   我引用了一個用於這個項目的配置文件的例子;它是網關運行所需要的基本文件。不過,還有一系列其他變量可以用來控制網關。您可以參考 Kannel 用戶指南(User Guide)來了解它們。     清單 1. 網關的樣例配置文件     #The sample.conf file which is the core configuration file  #for running the WAP Gateway  #Start of Configuration File    group = core  admin-port = 13000  admin-port-ssl = false  admin-passWord = rose123  status-password = rose123  admin-deny-ip = "205.158.62.76"  admin-allow-ip = "*.*.*.*"  wapbox-port = 13002  box-deny-ip = "205.158.62.76"  box-allow-ip = "*.*.*.*"  udp-deny-ip = "205.158.62.76"  udp-allow-ip = "*.*.*.*"  wdp-interface-name = "*"  log-file = "my_kannel.log"  log-level = 1    #The wapbox group for WAP gateway configuration  group = wapbox  bearerbox-host = localhost  timer-freq = 1  log-file = "my_wap.log"  log-level = 1  #End of Configuration File     理解樣例配置文件中給出的各種屬性   組中包含它所關聯的組的 ID。如果 ID 是 core,則它是 bearbox 的配置;另外,wapbox ID 是代表 wapbox 配置。 admin-port 標識符指定了 HTTP 管理通過哪個端口完成。bearerbox 和 wapbox 組的其他各個屬性的描述見表 2 和表 3。必選的域由 m 來表示,o 表示是可選的域,c 表示是有條件的域。     表 1. bearerbox 的配置文件屬性變量 值 描述     表 2. wapbox 的配置文件屬性     啟動網關   一旦編譯了 Kannel 並按您的規范編輯了配置文件,就可以進行最後一個步驟了。對於基本的工作,您可以拷貝並粘貼清單 1 中的文本,將其以任何名字保存,並用作您的配置文件。為了啟動網關,您必須首先啟動 bearerbox,然後再啟動 wapbox。由於 bearerbox 是網關的基本部分,它必須要先啟動。     通過下面的命令啟動 bearerbox:./bearerbox -v 1 。     -v 1 將日志級別設置為 INFO。使用這一選項,您將不會看到大量的調試輸出(默認是 DEBUG ),同時 conf_file 是您的 Kannel 所使用的配置文件的名字。基本的發行包附帶了樣例配置文件 wapkannel.conf(在 /gw 子目錄下),用於構建 WAP Kannel。您可以編輯那些配置文件以構建您自己專門的系統。在信使單元之後,必須啟動 wapbox。通過輸入下面的命令啟動它:./wapbox -v 1 。     要了解更多命令行選項,您必須回顧 Kannel 用戶指南。     通過一個 HTTP 接口管理網關   可以通過一個 HTTP 接口管理 Kannel。所有的命令都作為 HTTP 請求給出,所以可以方便地通過命令行給出它們,比如這一個:  % lynx -dump http://localhost:12345/shutdown?password=bar     在上面的命令中,“12345”是配置文件中設置的 admin-port。對大部分命令來說,需要有一個 admin-password 作為參數,如這裡所示。shutdown 用於關閉網關。其他可用的命令是:    Status,得到網關的當前狀態。如果沒有設置 status-password,那麼不需要密碼。     Suspend,設置 Kannel 為掛起狀態。需要一個密碼。     Resume,將 Kannel 的狀態設置為運行。需要一個密碼。     使用一個支持 WAP 的移動電話模擬器進行測試     我將給出一些簡單步驟,以通過移動電話模擬器來測試網關並訪問來自因特網的 WML 頁。您需要有兩台機器,一台運行 Windows 操作系統,另一台是 Linux 網關,最好用局域網連接起來。Linux 機器必須連接到因特網上,不管是直接的還是間接的。    您可以使用 Nokia 7210 Content Authoring SDK,它可以用於 Windows 系統。     將它安裝到 Window 系統中。     做一些小小的配置,並將網關地址設置為運行著網關的 Linux 機器的 IP 地址。     現在在模擬器中輸入提供 WML 頁服務的 Web 站點地址,就大功告成了!   您一定能




Copyright © Linux教程網 All Rights Reserved