APP下载

基于Web Service与Socket技术的宿舍电量自助实时查询方法研究

2019-08-27丁志勇魏杰郭华刘洋

商情 2019年29期

丁志勇 魏杰 郭华 刘洋

【摘要】针对目前学院控电系统不能提供宿舍电量自助实时查询的情况,我们与厂家一起进行了技术研发,利用Web Service与Socket技术,有效解决了此问题。

【关键词】电量自助实时查询 Web Service Socket

1目前现状

随着控电技术与无现金支付手段的发展,电费自助缴纳与查询系统在电力行业得到了蓬勃发展。在众多高校中也已经提供了宿舍电费的自助充值、查询服务,极大地方便了师生,大大降低了人工充值的压力,我们学院也受益颇多。

然而,在充值之前,人们往往会先进行电量查询。我们学院的做法是:由后台系统间隔一定的时间段自动查询剩余电量,保存到数据库中,用户查询的是数据库中的数据,这种方法实际上是传统意义上的手工抄表。缺点是非常明显的,由于查询显示的电量有可能不是真实电量,明明是没电量了,但是查询到的依然是有剩余电量,长此以往,会给用户带来极大的不信任感。因此,本文就电量的实时查询问题进行了研究。

2用到的技术简介

2.1 Web Service技术简介

Web Service是由W3C制定的一套开放的标准的技术规范,W3C对Web Service的定义如下:Web Service是由URI标识的一个软件应用,其接口和绑定可以通过XML文档定义、描述和发现;它使用基于XML的消息通过互联网协议与其它软件之间直接交互。Web服务的目的是让不同的软件应用程序能相互操作,无论这些程序是用什么编程语言实现,运行在什么样的操作平台或架构技术上。在Web Service体系结构中有三种角色:服务提供者、服务代理(或服务注册中心)和服务请求者。

服务提供者首先将服务发布到服务注册中心并通过WSDL对所发布的服务进行描述,以待服务请求者去注册中心对服务进行查询;服务请求者根据其需要到服务注册中心查找服务,以找到合适的WEB服务;服务请求者通过服务注册中心找到合适的服务,服务提供者接受服务请求者的服务请求,并与服务请求者绑定和传输服务。

Web Service相较于传统的分布式应用,具有极大的优势。

以前,分布式的应用程序逻辑需要使用分布式的对象模型,通过使用DCOM、CORBA、RMI之类的基本结构,开发人员仍可拥有使用本地模型所提供的豐富资源和精确性,并可将服务置于远程系统中。中间件确实提供了强大的服务实现手段,但是,这些系统有一个共同的缺陷,那就是它们无法扩展到互联网上。现在,Web Service是创建可互操作的分布式应用程序的新平台。Web Service的主要目标是跨平台的可互操作性,为了达到这一目标,Web Service是完全基于XML、XSD等独立于平台、独立于软件供应商的标准的。

2.2 Socket技术简介

Socket的英文之意为套接字,对于使用TCP/IP协议完成的电脑间通信,套接字提供了双方通信的接口。它是一种基本的操作单元,是双方的相互约定,它的功能已被打包在DLL中,通过相应的函数来完成相应的功能。套接字分两种:流套接字和数据报套接字。

流套接字提供了接受方和发送方,按照一定的次序,没有重复并且无记录边界的数据流交互,比较适合用于处理大量的数据,最终再通过网络传输层的分析、处理。

数据报套接字同样支持发送方与接受方之间的数据交流,但在传输过程中,其可靠性、次顺性及不可重复性不能保证。

3本文的解决方法

本方法综合利用了Web Service与Socket技术,与厂家一起进行技术研发,终于解决了宿舍电量自助实时查询的难题。

Web Service用来向用户提供查询宿舍剩余电量服务。当用户发起电量查询后,Web Service会先利用Socket向控电管理机发出查询命令,再将查询到的结果返回给用户。具体执行流程如下图所示:  用到的Web Service代码:

1、方法名:TraceDLZTArray查询电量状态,数组方式输出。

2、参数说明:TraceDlZTArray(ByVal inMm As String, ByVal inXq As String, ByVal inFj As String)返回电量状态信息数组。(1)入口参数:inMm输入密码,inXq输入校区,inFj输入房间,数据类型String;如:inXq=”主校区”,inFj=”101001”。(2)说明:inFj=“101001”,代表1号楼1层01房间。(3)返回数据:房间号、免费电量、收费电量、累计电量、负电量、供电状态值、供电状态;

3、举例:TraceDLZTArray(“******”,“主校区”,“101001”),调取1号楼1层01号房间智能电表电量状态信息

为了有效检验本方法的可行性,我们选取了一栋宿舍楼进行测试。历经1年,3937人次的试用,反应良好,彻底杜绝了查询到的剩余电量与实际电量不一致现象的发生。

4本方法存在的问题与改进措施

在试用期间,我们也发现了该方法存在的最大问题:当一个用户查询未完成,另一个用户也进行查询时,电控模块的管理机会不进行响应,导致查询失败,如果用户仍然想查询的话,只能进行多次尝试。

针对存在的问题,下一步,我们准备将查询操作放入查询队列中,先来先服务,待完成一次查询后,管理机返回成功状态标志,在队列中取下一个要查询的房间号,同时设置超时时间,如果超时,就认为是查询失败。要想得到结果,只能再次发起查询。

参考文献:

[1]庞文昌,王兴权.基于WebService的费控电能表便捷缴费技术应用研究[J].通讯世界,2018(02).

[2]李莉,高峰.WEB Service技术综述[J].信息系统工程,2014(01).

[3]蒋达.基于Socket的网络接口编程[J].办公自动化,2018(23).