当前位置:编程学习 > wap >>

第一章 WAP Server = Web Server + Configuration

答案:我们首先以microsoft 的internet infomation server(iis 4或iis 5)以及unix平台中最为普遍的apache两种web server来介绍如何以它们来建制自己的wap sever,将原先已经建制的web信息平台扩展到无限平台之上。
  1.1 wap sever configuration
  其实wap sever建制非常容易,wap在信息传输的部分是使用http来进行的,与现有的www信息平台一样,因此,将现有的web sever都可以通过对配置的调整成为wap sever,提供对无线装置的服务。
  
  图1.1
  在wap服务当中,所提供的新文件类型目前共有五种,以扩展名来分的话分别是wml,wmlc,wmls,wmlsc,wbmp,分别代表的是wml原始文件、wml文件的二进制码、wml script的原始程序码、wml script二进制码,以及单色的wireless bmp文件。这些的扩展名必须新增到web server的mime type设定中,web server才能够提供wap的服务。
  不论使用何种web sever软件,例如microsoft iis、netscape enterprise sever、apache、或是任何一种,只要加入以上五个mime type设定,就可以提供wap服务了。
  接下来,我们就一步步带领大家以iis及apache两种不同的server进行设定,将您的web server进化成wap server,以提供wap服务。
  1.2 把microsoft iis 变成wap server
  在这一节里面,我们以iis为例,进行mime type的设定。在windows 系统的发展过程中,到了windows 98、windows nt 4.0的option pack公开之后,对于www信息平台的提供就变得更容易了。
  本节中所使用的范例程序是iis 5.0。但是windows nt 4.0 workstation版本以及windows 98所使用的personal web server(pws)则在设定步骤上面有些差异。
  首先,进入iis的管理画面。
  启动了iis管理画面之后,请选取您要管理的机器名称,在选取了机器名称,iis管理画面会将该机器上面所有的www站点都显示出来。这是因为iis中可以针对windows 2000或windows nt 中所设定的不同ip位置或同一个位置中不同的port建立多个www的服务。
  选取了要设定的web站点之后,请在该站点的图示上面以鼠标右键点选一下,调用设定画面,如图1.1所示。在图中的设定画面选项里,可以设定包含虚拟目录、制作清单,以及目录安全设定等许多不同的功能,只是因为在这里我们所点选的是整个站点,因此所变更的设定将会被套用在整个站点中。
  当然我们也可以只针对某几个特定的目录作设定,只要在特定的目录上面按鼠标右键,使用该目录的设定选项,如图1.2所示,更改设定并套用之后就可以了。
  
  图1.2
  设定选项之后,请直接选取“属性”显示变更设定内容的视窗,如图1.3
  
  图1.3
  在设定内容视窗中,一共包含了十大分项(这里的分项会因为iis版本不同而有所差异)。进入设定内容视窗之后,一开始会位于整个web站点的主要设定部分,包含在iis管理员中对于这个站点的名称、让这个web站点对应的ip地址和port号码,而我们要新增的mime type则要在http标题的部分作设定的。
  再进入了http标题设定部分之后,会出现如图1.4所示的画面,在http标题设定部分包含了四种不同的设定,分别是:启用内容限易做图务,用来设定某些特殊的目录中的文件权限,以及自定义http标题,用来设定自定义http header meta资料,第三个是内容分级。可以将一个目录或站点中的文件内容设定为内含某种等级的文件,例如暴力、性、不当文字与言语等,第四个部分就是我们现在要设定的部分:mime对应,将某个特定的扩展名与mime type。
  
  图1.4
  接下来,请点击文件类型这个按键,调用mime type设定画面,如图1.5所示。
  
  图1.5
  在图1.5中的新类型按键上面以鼠标左键点选之后,就会出现图1.6的输入画面,此时我们要将前述的五个mime type一次一次的输入到扩展名与内容类型之中。当然了,一次只能输入一种新的扩展名与mime type的对应。而输入完成之后在iis 5.0与4.0中就可以直接使用这些新的文件类型了。
  
  图1.6
  而windows nt workstation或是windows 98中的personal web server(pws)的设定方法有很大的差别。
  因为在pws之中并没有特别让使用者输入资料的设定界面,所有的pws的mime type都是使用windows操作系统内部的mime type对应资料的,因此我们必须在windows资源管理器中的文件类型这部分来做新增的动作。
  首先我们需要点击资源管理器上面的工具选项,选择其中的文件夹选项这个项目,调用设定系统配置的视窗界面,如图1.6所示。
  一开始画面将会显示在第一页的设定部分,也就是图1.6中的“查看”那一页,我们新增的mime type的部分是位于文件类型的设定页中,因此我们必须以鼠标左键点击文件类型的tag以切换到该设定页。此时以鼠标左键点击图1.6中的新建类型按钮,则会出现图1.7所示画面。
  
  图1.7
  新增类型包含了:文件描述、关联扩展名、内容、类型,也就是mime type,还有这个类型的预设的扩展名。原来在windows nt系统中还需要将对新增的文件类型加入所谓开启、编辑等对应动作的处理程序与参数设定,但是现在新增的mime type只是为了在personal web server(pws)上面提供新的mime type,因此便不用在此指定其他相对应的动作所要启动的程序。但读者如果想在windows资源管理器当中以鼠标双击该文件进入编辑器来处理这个文件的话,请暗下动作选项(a)下面的新增按钮,则可以选择以系统中的那个程序来处理该种文件。
  不过要注意到的是,目前的环境中还没有比较好的wml编辑器,所能用的应该也就是几个电信大厂所提供的工具了,所以读者也可以使用目前在网络上极为流行的几种文字编辑器来处理wml文件,像笔者就是以ultraedit 6.0作为对wml文件的处理程序。
  在windows nt workstation或windows 98当中设定好了这些新的mime type之后,必须重新启动计算机,让系统更新对于文件类型的对应,然后personal web server(pws)才能够提供wap服务。
  1.3 将apache 升级为wap server
  apache可以说是目前所有跨平台的web server软件中支持最多平台的一个,它的前身是ncsa的httpd,一开始这个软件在改版的时候就已经考虑到大多数的操作系统平台了,包含了nt,linux、以及各种不同的unix操作系统,在这里我们将以linux配合apache作为设定的例子。
  1.3.1 apache 系统介绍
  apache系统

[page_break] 比较像ncsa的httpd(因为是同一群工程师将原来的程序改良而成的),只是后来的apache比前期的ncsa httpd增加了许多功能,像apache提供了同步执行多个处理程序的功能,使得ncsa httpd原本效能不良的问题获得了长足的改善。现在,只要你使用的是unix或者linux系列的操作系统,同时也使用apache作为你的web server的话,你可以再列出全部处理程序的时候看到其中有许多个httpd处理程序同时在执行。
  apache使用了同时维持一定的未忙闲状态的处理程序来改善效能问题。因为旧有的ncsa httpd言用所有的unix上面的成学习法方法,将所有的功能大都以一个处理程序(process)作为提供者。而在1995-2000这几年中,web的使用者的数量极为快速的增加,因而就系统以单一处理程序提供服务的方式越来越不受欢迎,而在cgi与互动程序的效能与支持上面也增加了许多的功能。
  例如在互动程序上新增了php程序的支持、java servlet、jsp,甚至于还支持windows iis系统中的asp程序的功能,都是让许多人不断支持apache的原因。除此之外,apache对于cgi效能的提升也作了极大的改良,除了提供程序人员开发可植入apache系统的界面,用以提升常用程序的效能之外,还针对一般cgi的效能问题与安全问题作了改善。
  在把apache server装到linux系统上面之后,linux系统的/etc目录下就会新增一个httpd目录,用来存放所有的apache的配置设定文件,而执行文件httpd则会被存放在/usb/sbin目录中,同时还会将一个名为mime.types的文件放到/etc目录下面。
  且不论apache里头的其他设定(这部分的设定文件都在/etc/httpd/conf底下,包含了目录的权限、虚拟目录的对应、以及sever本身的其他相关的设定)mime type的设定值需要修改/etc/mime.types这个文件即可。
  /etc/mime.types这个文件中储存的是以行作分隔的mime types设定,每一行为一个独立的mime type,如果要对应到特定的扩展区的话,就直接在mime type之后留一个空白字符,在打上扩展名。以wmlc为例,必须在文件中加入以下这一行设定:
  application/vnd.wap.wmlc wmlc
  完成之后,重新启动apache,apache就可以提供wmlc这个文件类型让使用者端存取了,当然,在第一节中所介绍的五个mime type也都得加到设定文件中才能提供完整的wap服务。
  1.4 建立wap的测试环境
  在wap编程与开发中,为了对所编写的网页及应用进行测试,我们通常要建立wap的测试环境。一般来说,wap测试环境可以从浏览器环境、模拟环境、实际环境三个方面进行建立,本节就对此进行基本的介绍。
  1.4.1 浏览器环境
  浏览环境的建立十分简单。目前internet尚有许多站点提供有wml浏览器的免费下载服务。比较著名的wml浏览器是winwap(http://www.wapschool.com/chinese/download/winwap22.exe)以及各移动通信设备公司提供的浏览器。安装这些浏览器后,用户就可以在windows系统环境下访问wap站点,查看wap页面。
  在wap的服务器端,开发人员则可以利用windows nt 4.0或windows 2000以及internet信息服务器iis(internet information server 4.0/5.0)软件进行模拟。在原有的www服务子目录下再建立一个wap子目录,将所有的wml网页放在其中,并对iis进行必要的配置。然后,在www服务器正常运转的情况下,开发人员通过在winwap等wap浏览器中输入http://locallhost(本地计算机名)/wap/index.xml的形式,即可进入wap网页进行浏览测试。
  这种测试环境的优点是实施起来比较简单,建设比较快,操作起来也比较简单易学。其不足之处在于,这种测试用的浏览器毕竟是windows环境下的浏览器,支持大部分的wml标记,查看窗口的界面可以扩大和缩小,比较自由,因而所看到的测试效果与实际手机上的效果可能会有比较大的差别,而且它也不能提供编辑、编译和调试的集成环境。
  1.4.2 模拟环境
  用于wap测试的模拟环境是通过使用移动通信设备公司所提供的wap手机模拟器来实现wml浏览的。目前可以从各公司站点上下载的模拟器有nokia toolkit、ericsson r1.0 emulator、ericsson wapide、upphone up>simulator、motorola mobile adk等。
  相比较来说,nokia和motorola提供了比较完整地结成开发环境,其它两家主要提供了模拟wap手机的wml浏览。由于模拟器一般都是供直接的html服务器直接连接,所以wap服务器端只需要windows nt/2000及iis 4.0/5.0 软件即可进行模拟和调试。与上面介绍的方法一样,在www服务器工作正常的情况下,通过输入http://locallhost(本地计算机名)/wap/index.xml的形式,即可对wap网页进行浏览测试。
  虽然说这种模拟环境提供了集成环境及与wap手机基本一致的模拟器,但仍难保证所用模拟器与其实际产品完全一致,尤其是没有wap网关的参与,因此这是一种并不完备的检测。特别的,这种模拟环境下与无线电话应用wta(wireless telephony application)相关的服务根本没有办法进行检测。不过,对于单纯的开发测试来说,这样模拟环境基本能满足要求。
  1.4.3. 实际环境
  wap测试的实际环境中需要wap手机、网卡及服务器三个部分,因此,为了建立wap测试的实际环境,开发者需要购买一些主流的wap手机,同时使用前面介绍的方法在原来的html服务器上建立一个wap专用的虚拟目录,已建立wap服务器,然后使用现有网关或夹在移动通信公司提供的相应网关,那么只要三者都能顺利正确的工作,开发者就可以通过wap手机对wap网页及应用进行测试了。
  1.5 完成wap设定之后
  在完成wap设定之后,我们就可以开始提供给所有的使用者wap服务了,当然,在这之前,还必须将content(内容)准备好,也就是说,我们还得先将wml文件与相关的应用程序准备一下。

上一页  [1] [2] 

上一个:变量
下一个:WAP的组成及主要特点

更多图片编程知识:
更多wap疑问解答:
新人求助QPainter
为什么程序都退出了还可以收到推送?如果大多设备都可以推送那运营商怎么办?
qt 4.7 sqlserver2000 存储过程调用
关于ANDROID4.0.1编译问题!
Android FrameBuffer读屏幕30秒后mmap失败
联通粗定位用java程序如何来请求和接受数据
为什么QT运行Android平台的程序时,mouseMoveEvent事件响应的间隔时间很长??????????
android与PC蓝牙通讯
指定大小的label 内容可变,如果内容超出label的宽度,将未能显示的部分显示在另一个label上
Android调试
android如何通过wifi连接无线打印机
运行程序,release目录下产生一个乱码文件夹
分享个某机构最新安卓资料,自己验证了
service启动不起来,掉不了service connection
求助:QT5.0 没有QPrinter吗
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,