WAP网关管理模块的实现

本文详细介绍了WAP网关管理模块的功能设计、实现结构和关键技术,包括服务启停、日志管理和配置修改。管理服务通过TCP Socket与用户界面交互,使用Socket编程、C和Java流通信技术、Unix Shell编程以及进程同步技术。此外,文章还讨论了未来改进方向,如用户管理数据库、SNMP协议、计费管理和安全协议的增强。
摘要由CSDN通过智能技术生成
无线应用协议(WAP)是在数字移动终端和Internet之间进行通信的开放的全球标准。它由一系列协议组成,可用于Internet访问,包括收发电子邮件、访问WAP网站上的主页等。目前,国外已经有厂商开发了WAP网关。由于WAP标准中没有WAP网关管理的相应标准,所以,这一部分工作目前尚有待于研究和完善。我们在自主开发的WAP网关的实现中,除实现了各层WAP协议外,同时也设计和实现了一个WAP网关的管理模块,并为今后的功能扩展提供了接口。

功能设计

 

----在WAP规范定义中仅仅定义了各协议层服务需要完成的功能,但如何进行网关中各层协议服务的运行管理,同时为系统管理人员提供一个友好的用户管理界面是需要认真研究的问题。我们通过总结以往的网络管理研发工作和对 WAP网关工作模式的分析,提出如下网管功能:

  • 对WAP网关服务的启停;

  • 获取WAP协议栈各层的运行日志文件;

  • 修改WAP网关协议栈的有关参数配置;

  • 依据用户访问的记录日志,进行相应的计费管理,并输入到后台的数据库中。

----为了实现上述功能,我们将整个管理模块划分为以下两部分:

----管理服务模块 该模块作为用户管理界面和被管理对象之间的接口,其主要功能是通过不同的通信方式与WAP协议栈的各层服务以及用户管理界面进行通信。该模块对各层协议实体进行定时轮询,以获得其运行状态信息,如遇严重错误,则重启系统,以使WAP网关的服务能够重新正常进行。同时,将消息转发给用户管理界面模块,使用户通过管理界面进行监控。它的另一个主要功能是根据用户界面模块的请求访问日志文件,并以友好的界面将日志文件提供给用户界面模块,这些日志文件由各层协议实体在运行时实时写入,可用于进行系统运行状态分析和进行计费管理等。该模块还可根据用户的请求,将网关的运行配置文件以友好的用户界面形式显示给管理员,管理员可以通过界面修改该配置文件,并在下次启动时生效。

----用户管理界面模块 其主要功能是根据各层状态决定 WAP网关的启停和管理服务模块是否工作。该模块同时还负责向用户提供错误日志和事务日志文件信息及配置文件的内容,并可修改配置文件。

实现结构

 

----根据功能设计,我们确定了如下图所示的WAP网关管理模块实现结构。

----在WAP网关管理模块中,管理服务是主要部分。网关管理服务与用户管理界面模块之间通过TCP Socket进行通信。

----管理服务的首要部分是对WAP网关的各层服务进行轮询,随时查看当前网关中各层协议服务是否正常运行。为了减轻WAP协议栈中各层服务的额外负担,并充分利用WAP协议栈各层服务之间原有的通信功能,管理服务通过TCP Socket方式只对WAP协议栈的承载网络层发送轮询报文。报文格式的设计依照两个原则,第一是报文必须尽量短,以减少在网络中传输的开销;第二是必须符合协议栈各层服务之间原有协议的报文格式。所以,我们利用协议中没有被使用的部分,采用一个整型值作为轮询报文内容,轮询的过程是由管理服务向承载网络层发送轮询报文,由承载网络层将这个报文由下至上向各层协议实体发送,各层次的协议实体接收到报文后原封不动地向上层服务传递,轮询报文到达顶层后再原封不动地由上向下传递,最后由承载网络层发还给管理服务,轮询报文无需处理,从而减轻了负担。因为轮询报文需要经过协议栈的各层服务,所以,如果这个过程能够在规定的时间内完成,那么,管理服务就可以认为WAP协议栈的各层服务正常,否则说明至少有一层服务发生失败,管理服务则重新启动各层服务。

----管理服务的第二个部分就是通过一定的控制方式对WAP 网关的各层服务进行启停控制。若网关中某层协议服务由于某种原因而失败,则此时WAP 网关无法正常工作,如果仅重新启动这层服务,那么,可能会产生各层协议服务之间状态不一致等情况。为了防止这种情况的发生,当管理服务发现某层协议服务失败后总是首先停止所有协议栈服务,放弃所有当前没有处理完毕的请求,然后再按照从下至上的次序将WAP协议栈的所有服务重新启动。

----管理服务的另一重要部分就是存取日志和配置文件。管理服务以字节流的方式读写这两个文件。日志文件(包括错误日志和事务日志)是由各层服务写入,管理服务仅读取并转发给管理界面。配置文件由管理员通过管理界面进行存取和修改,并记入文件中。

关键技术

 

----我们采用C语言在AIX操作系统平台上实现了管理模块中的管理服务模块,它与其他各层协议实现软件同时运行。考虑到网关管理员可能进行异地管理,运行平台可能发生改变,我们在设计时充分利用了Java技术在跨平台方面的优势,利用Java技术完成了用户管理界面的开发,并在开发中使用了Java技术的 Swing1.2最新标准,用户界面美观且有很好的开放性和兼容性。

----1. Socket编程技术

----在管理服务模块和管理界面模块的实现中都使用了TCP Socket编程技术。管理服务模块需要建立两个TCP Socket,一个是作为Socket服务端与管理界面的Socket客户进行通信,完成与管理界面用户的交互;另一个是作为Socket客户与承载网络层启动的Socket服务进行通信,完成对WAP协议栈的状态轮询。

----管理服务模块的TCP Socket是用C语言实现的,而管理界面上则是Java实现的Socket客户。由于Unix下的标准C和Java语言实现的TCP Socket 都是标准的,所以,他们之间有很好的互操作性。

----2.C和Java语言的流通信技术

----在管理服务模块和管理界面模块间建立连接后,必须建立他们之间的通信模式。C语言和Java语言略有不同,C语言是直接将一个字符串放入与 Socket相应的文件句柄中,而Java语言可以在Socket的基础上生成相应的管道流,以后所有的通信完全在管道流中进行。

----在处理管理服务与管理界面的通信中迫切需要解决的是 C语言和Java语言关于数据长度定义不一致的情况,对于C语言而言,同一数据类型在不同的操作系统中的字长定义是不同的,而Java语言对于所有平台的字长定义则是相同的,根据这个特点并参考了AIX操作系统,在C语言实现的管理服务端采用字节流发送,在Java语言实现的用户界面采用读写字节的方式进行,不仅对协议头,而且对协议的内容,包括日志和配置文件这样的字符串,在用户界面端也首先转换成字节方式发送。

----3.Unix Shell编程技术

----WAP协议栈服务的启停功能是通过在主进程中调用一个 Shell程序实现的。启动时以后台运行的方式将WAP协议栈中的各层服务按照独立进程的方式由下至上逐层启动。停止网关服务时,首先调用Shell程序,根据名称从系统进程中解析出与WAP网关相关的所有协议栈的服务进程,取得其相应的进程号,随后通过终止命令将所有网关进程全部停止。

----4.进程同步技术

----我们通过对启动的Shell程序每个命令之间睡眠一段时间来保持WAP协议栈各层服务之间的顺序关系。另外,为了同步管理服务的轮询操作和网关各协议层的配合关系,我们采用了标志文件来实现同步操作。也就是说,在Shell程序开始时删除一个标志文件,等所有的协议栈服务完全启动后再生成这个标志文件,在主进程中判断标志文件是否存在,如果存在则继续执行主进程的动作,否则等待。

----5.客户界面的Java编程实现

----考虑到Java语言有很好的平台独立性,而且使用Swing 技术可以美化用户界面,所以,在客户端采用了面向对象的Java编程,实现了3个主要对象。其中WAPGateway_Manager_GUI是客户机用户界面的主要文件,它包括了管理界面的大部分功能,例如向管理服务发送请求、接收管理服务的反馈消息等。其属性包括界面需要的组件对象和管理服务通信需要的Socket以及流对象,同时还包括了与管理服务之间的协议定义。其方法分成三类,即处理和显示用户界面对象的方法、根据用户的动作和请求连接事件处理的方法以及实际处理协议动作的方法。

----现在支持Java语言的可视化开发工具有很多,例如IBM VisualAge for Java、Borland Jbuiler、Microsoft Visual J++等。他们最新的版本中都开始支持Java2标准,其中包括JavaBeans、Swing等。开发中我们使用了IBM VisualAge for Java 工具,它提供的完全可视化开发环境和动态调试技术使客户界面的开发效率大大增加,同时也设计出了美观的用户界面。基于Java的应用都存在运行速度慢的问题,由于我们的管理界面对程序运行的实时性要求不高,所以影响不大,而且我们将采用代码优化技术,以提高程序的运行速度。

----6.管理界面和管理服务间的通信协议

----在用户管理界面和管理服务之间进行通信的所有消息是一套自定义的协议,按照协议的处理方式可分为两类,一类是需要目的进行确认的,例如启停服务在完成时管理服务会向用户管理界面发送结果信息进行确认;另一类是不需要目的进行确认的,例如用户管理界面的退出协议是不需要管理界面对其是否退出进行确认的。如果按照协议报文的结构划分,有些协议只包括协议头,如启停服务;有些则除了协议头外还有协议内容,如发送管理服务模块当前状态协议,在协议头后还需有当前状态的内容。

----7.管理服务的状态轮询

----管理服务轮询的关键在于如何正确地判断WAP协议栈中是否有服务失败,也即轮询过程不能正常进行。我们通常认为,如果发送的轮询消息在规定的时间内不能接收返回,则说明服务失败。在实现中,我们采用了简洁的方法完成以上要求。发送线程以一个固定的时间间隔向承载网络层发送轮询消息,在每次发送轮询消息之后判断这次发送消息的时间和最后一次接收轮询消息的时间间隔,如果时间间隔超过规定的阈值,那么就认为协议栈服务失败,需要重新启动服务,否则继续发送轮询消息。在接收轮询线程中所需完成的工作就是当接收到一个返回的轮询消息时,把最后一次接收轮询消息的时间设置为当前时间。

----通过我们的努力,目前,WAP网关管理模块已经完成所急需的一些最基本功能,但还有许多值得进一步完善之处,在以后的工作中我们准备在以下各方面进行改进:

----(1) 在管理服务中增加用户管理数据库,用于存放WAP 网关管理员的账户信息,要求通过用户数据库对使用管理界面的用户进行登录管理。

----(2) 改造现有的自定义协议,逐步过渡到使用SNMP协议进行管理,加强与其他网关产品的互操作性和开放性。

----(3) 根据实际用户的要求(如电信部门),完善用户请求的事务记录,并同步地迁移到服务器后台大型数据库中,便于对WAP用户进行计费管理。

----(4) 增加管理界面的使用安全协议,制作更加方便的用户管理界面安装套件,便于推广和交流。

----我们有理由相信,随着WAP技术的发展和其应用的广泛深入,与之相配套的WAP网关管理平台的技术和产品也会得到更大的发展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值