1数据库相关数据表的自动检测和创建
UMS3系统支持几种常用数据库的数据表自动检测和创建。支持的数据库包括:MySQL、MS SQL SERVER、Oracle和DB2。其他数据库可以根据实际情况进行添加。
当系统进行数据库连接的时候,如果发现数据库中不存在相关的数据表。那么系统将自动根据数据库类型,创建相关数据表、序列和触发器等相关内容。完全无需人工干预。
2提供基于Web的后台管理模式
UMS3系统提供完全基于Web的后台管理模式。只需要通过浏览器就可以管理相关的网关系统,完全无需安装专门的客户端。甚至可以直接通过后台监测实时日志。
3提供基于Web的网关自检测功能
UMS3系统提供基于Web的网关自检测功能,用户可以通过后台管理页面发起各种常见的数据测试,以检测网关是否工作正常,或者方面进行某个简单的测试工作。
4支持上行发送状态报告功能
一般上行发送是没有状态报告和回执的。UMS3系统中通过指定该配置,可以额外对上行部分支持状态报告。
4.1如何设置该功能
在网关<gateway>标签的可选项目<options>中增加标签<deliver_needed_report>。
它的主要功能是表明该网关支持上行的状态报告。一般情况下发送上行是不会提供任何状态报告的。设置了这个标签以后,网关发送上行如果成功,会给信息提供方反馈状态报告。
由于是针对上行的状态报告,因此主要用途是在服务端,而不是在客户端方面。
5支持流量自动控制和适应功能
在通常情况下,流量控制基本只是设置一个最大数值限制。UMS3系统提供了一个额外的流量自动控制和适应功能。
5.1如何设置该功能
在网关<gateway>标签的可选项目<options>中增加标签< auto_self_control >。
它的主要功能是要求网关进行发送流量自适应动作。即如果对方网关应答快,则我方网关提高发送速度;如果对方网关应答慢,则我方网关降低发送速度。完全无需人工干预。
5.2注意事项
这个配置参数只对以包交换为主的协议网关有作用。而且一旦配置以后,可能系统预期发送平均速度会有所降低。
6根据来源地址和目标地址特征选择不同链接进行发送处理
一般一个网关内可以集成多种链接处理。现在UMS3支持根据来源地址和目标地址特征选择不同链接进行数据发送。UMS3系统通过在网关内部建立一个路由表来支持此功能。
6.1如何配置路由表
在标签<gateway>下建立如下配置:
可以看到特别是多出了标签<routeMap>项目。里面的路由表指明了目标地址是0027的去往名称为0027的会话;目标地址是0024的去往名称为0024的会话。而0027和0024的连接参数可以是完全不相同的。
6.2注意事项
虽然网关内部支持根据路由来判断发送连接。但是不要随意将此功能扩大化。在大规模范围内应用的时候,最好还是按照以“网关”为功能划分,把相关功能进行隔离。
7长业务代码和短业务代码的映射转换
在电信和网通使用了最新的Parlay协议通讯网关以后,业务代码是非常的长,而且全部是数值不便于记忆和操作。UMS3系统提供业务映射表,可以将长代码映射成短代码使用。一方面可以做到和以前的业务兼容,另外一方面也方便开发和使用。
7.1如何配置映射
在<gateway>标签下增加如下配置标签:
<serviceMap>
<service name="BANYAN01" id="218100424010000001257">
<productID>118100424010000001075</productID>
</service>
</serviceMap>
这个映射就意味着,将长业务代码(118100424010000001075)映射成短业务代码(BANYAN01)。上行和下行时均进行相关映射操作。
7.2注意事项
所有的配置要重新启动网关才会生效。网关运行过程中修改的配置项目是无法直接在系统中生效的。
7.3常见问题
(1)如果业务中找不到映射关系的业务代码如何处理?
解答:会保持原来的数据内容,不会做任何更改。
8可以选择配置的重发机制
UMS3系统开始提供一种可以选择配置的重发机制。用户可以通过自行的选择和安排来要求系统对特定的错误进行重发处理。一般重发要求有两个:(1)对于发送失败的数据进行重发;(2)对于状态报告是失败的数据进行重发。
8.1配置对于发送失败的数据进行重发
详细配置情况请参考《UMS系统配置文件概要》6.7.6.7.1部分。
<assistant type="transmitter.message.failed" action="normal" retry=”3” count="1">
<result value=”1” action=”retry”/>
<result value=”2” action=”normal”/>
<result value=”3” action=”discard”/>
</assistant>
其中标签<result>指明了失败原因数值及其对应的处理模式。上面的例子当中,当失败原因是1的时候,采取重发机制(且重发3次);当失败原因是2的时候,采取普通机制;当失败原因是3的时候,采取是直接抛弃。如果不是以上数值,则按照缺省的action处理。
8.2配置对于状态报告失败的数据进行重发
详细配置情况请参考《UMS系统配置文件概要》6.7.6.9.1部分。
<assistant type="transmitter.reoprt.normal" action="normal" retry=”3” count="1">
<result value=”ERR0001” action=”retry”/>
<result value=”ERR0002” action=”normal”/>
<result value=”ERR0003” action=”discard”/>
</assistant>
其中标签<result>指明了失败原因数值及其对应的处理模式。上面的例子当中,当失败原因是“ERR0001”的时候,采取重发机制(且重发3次);当失败原因是“ERR0002”的时候,采取普通机制;当失败原因是“ERR0003”的时候,采取是直接抛弃。如果不是以上数值,则按照缺省的action处理。
8.3注意事项
对于重发机制应当谨慎配置,否则可能会导致意向不到的结果。一般对于何种错误应该采取重发动作,应该是在弄清楚大概的原因后再决定。如果单纯的让系统自行决定重发功能将会存在一定的风险。因为很多情况下,错误状态的数据即使再重发还是错误的。
8.4常见问答
9定制信息发送时间
常规情况下很多外部网关并不支持信息的定时发送功能。UMS3系统中集成了对信息发送时间的定制功能,可以协助这些外部网关完成信息的定时发送功能。
9.1通过程序控制
在程序中可以通过以下几行语句可以定制信息的发送时间。
函数setScheduleTime即可设置需要发送的具体时间。上述例子中,设定了10秒后再发送此信息。
9.2通过SSMP协议控制
在SSMP协议中,可以通过options选择项目设定信息的具体发送时间。
如需要设定所发送的时间,可以在options里面加入选择项目:
schedule=【发送时间】
发送时间的格式为“紧凑”时间格式,即:“YYYYMMDDhhmmss”。
例如:
schedule=20081231012300
9.3网关控制选择项
缺省情况,UMS3的系统网关会直接支持该功能。但是有些情况下,外部网关就直接支持该功能。这个时候可以通过设置一个配置选择项目来关闭网关的该功能。
该标签名称:schedule_supported。属于<gateway>下的<options>项目里面的标签项目。如果设置的该项目,则该功能转移给外部网关进行支持,否则由UMS3系统的接口网关进行支持。
设置该配置项的例子如下:
9.4常见问答
(1)如果填写的时间比当前时间还早,系统会如何处理?
解答:系统会直接认为该消息已经超时。然后根据具体的设置要求,处理超时信息。
(2)如果数据队列比较长,在数据队列中,信息就已经超时,系统会如何处理?
解答:等到需要发送该信息时,肯定已经超时。然后根据具体的设置要求,处理超时信息。
(3)超时时间使用的是绝对时间还是相对时间?
解答:使用绝对时间,不使用相对时间。相对时间的起始点定义会比较混乱。
(4)如果系统运行当中,机器时间被修改,会导致什么结果?
解答:如果机器时间向后调整,则等于延长实际发时间;如果机器时间向前调整,则等于缩短实际发送时间。甚至于直接超时。
(5)如果外部网关不支持定时发送功能,但是我又设置了schedule_supported标签,结果会如何?
解答:系统无法传递相关功能给外部网关,所有的定时设置会没有任何功能意义。
(6)信息超时判断是在发送的时候判断,还是接收的时候判断?
解答:在信息将要发送的时候判断。
10客户端和服务端的快速转换
UMS系统对协议的实现是双向的,一般情况下会同时具有客户端和服务器端的功能实现。因此只需要通过简单的配置切换即可实现从客户端到服务端的转换。下面以CMPP协议为例子,来进行说明。
10.1配置CMPP客户端
将CMPP网关配置的连接器和会话器改成客户端连接模式:
10.2配置CMPP服务端
将CMPP网关配置的连接器和会话器改成服务的接收模式:
10.3注意事项
从上面的修改可以看出,两者之间的差别是非常的小。几乎就是一个socket连接配置的差别。
但是不是所有的网关都具有这样一个“对称”性,要根据其支持的情况进行配置。另外不要把服务端和客户端都混合配置在一起,除非有网关可以支持这种配置方式,否则系统进入一种“混乱”状态。
11短连接和长连接的兼容自由切换
一般来说,短连接和长连接很难兼容和自由切换。UMS3系统已经很好的将两者结合在一起,而其只需要通过修改配置文件即可实施。无需刻意去修改相关程序。下面以某个配置为例说明如何切换长连接和短连接。
11.1如何设置短连接
短连接的特征有以下几点:
(1) 有数据的时候才发起连接。
(2) 如果数据发送完毕,那么连接应该关闭。
现在可以在标签<session>配置如下:
<build_when_data_available/>
<timeout packet="10" message="10"/>
<enquire initiative="-1" passive="-1"/>
这里面就是增加了一个标签<build_when_data_available/>。它的意思是有数据再发起实际连接。那么在没有数据之前,连接处于半开启状态,等有了数据再发起实际连接。
另外设定相关timeout,并关闭活动测试,即可表明连接是一种“短”连接的状态。
11.2如何设置长连接
长连接的特征有以下几点:
(1) 数据连接一致持续。
(2) 依赖活动测试数据包保持连接。
现在可以在标签<session>配置如下:
<timeout packet="30" message="600"/>
<enquire initiative="20" passive="-1"/>
这个里面去掉了标签<build_when_data_available/>。表明无数据的时候也需要建立连接。
设定了比较长时间的相关timeout参数,并开启主动活动测试请求。这样即可实现一种“长”连接状态。
11.3注意事项
虽然两种方式的切换非常简单,但是最红还是要取决于对方网关的网关特性。不要随意修改和切换配置文件中已经配置的模式。
11.4常见问答
(1)短连接模式一般用于哪些网关?
解答:短连接模式一般用于:SGIP协议和以HTTP协议作为承载的大部分网关。
(2)长连接模式一般用于哪些网关?
解答:长连接模式一般用于:短信息协议和需要长时间连接的大部分网关。FTP、SMTP、POP都可以看做长连接的特例。
12同步处理和异步处理的兼容自由切换
会话过程有同步处理和异步处理的差别。
同步处理是发送方请求一个操作,如果接收方未能应答,发送方必须等待接收方应答才可以进入第二个操作;异步处理的特征是发送方请求各一个操作,可以不必等待接收方的应答就立即进行第二个操作。UMS3系统支持这两种方式的自由切换。
12.1如何设置同步模式
对<session>标签配置属性sync为true即可实现同步模式。
<session type="client.transmitter" sync="true" count="1">
12.2如何设置异步模式
对<session>标签配置属性async为true即可实现异步模式。
<session type="client.transmitter" async="true" count="1'>
12.3注意事项
虽然两种方式的切换非常简单,但是最终还是要取决于对方网关的网关特性。不要随意修改和切换配置文件中已经配置的模式。
12.4常见问答
(1)同步模式主要用于哪些网关?
解答:同步模式主要应用于:HTTP、SMTP、FTP、POP等基于命令行模式的通讯协议网关。
(2)异步模式主要用于哪些网关?
解答:异步模式目前主要出现在短信网关上。但是部分彩信网关也可以在HTTP上实现异步模式。