快捷搜索:   nginx

Linux上构建WAP网关

实现移动服务的最热门技术是无线应用协议(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。
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论