移动设备上跨平台通用远程调用框架的实现

目前小组正在做的项目是Symbian平台上的手机电视客户端,是一个基于 3G网络的富媒体应用,所以与远端服务器间的数据交换将不可避免。

                   

实现一个调用远程服务的模块以保证通信的高效和畅通是我们当前采取的方案,不过接口的需求略有不同:

l         由于运行在移动终端,受存储空间和处理速度的限制,框架必须精简

l         另有WMBrewiPhone等平台,所以生成的接口必须能够跨平台,以减少工作量

                   

目前采用的方案:

该方案的一个升级版本是定义一个XML Schema,该Schema描述的接口如FuncNameparam1,param2,param3……)来作为第二类接口,这样任何业务相关的控制状态信息都可以通过该接口通信,客户端与服务器端之间只维护一份XML Schema,该通信方式也可描述成函数PostXML DATA),具有很不错的特性:

a)        接口稳定,结构简洁清晰

b)       任何业务数据都能通过,当然任何数据都可以通过

c)       XML处理实现上可以更灵活,有效减少连接数和通信量

d)       可以实现自定义通信协议,具有远程过程调用接口梦寐以求的特性

但缺点也是大大的:

a)       XML数据的解析将变得异常繁琐,需要无比辛苦地把XML消息映射成具体平台相关的数据结构,而且还不能保证在各平台通用。

b)      由于数据完全依赖XML的解析,服务端对应答包结构的微小修改,也可能会给客户端XML结构数据的解析带来麻烦,部署和维护将会变得很痛苦。

                   

于是,构想中的另外一种方案:

比起HTTP+XML的通信方式多了一个基于XML通用远程调用层,这层的实现可以使用SOAP类库。客户端与服务器端之间只保存一个WSDL文件,在用户数据发生变化的时候,该接口不用发生变化。这种架构具有HTTP+XML方案的特性,又可以解决许多缺陷。

                   

注:由于WSDL和具体语言的具体操作接口绑死,导致修改WSDL需要重新使用工具导出具体语言的接口。这个是SOAP实现的远程过程调用本身带来的问题,但这些都可以使用自动工具来完成,实际人工工作量并不是很大。

                   

不过,这样也引入了SOAP在不同平台下的互操作性问题,为了最大限度的避免互操作性问题,则必须遵守WebService Base Profile 1.x系列标准。引入SOAP也增加了性能消耗和处理复杂度,所以一个简洁的SOAP实现将是必须的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值