自适应推技术的WEB实时监视解决方案.docx
- 文档编号:13611896
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:15
- 大小:177.30KB
自适应推技术的WEB实时监视解决方案.docx
《自适应推技术的WEB实时监视解决方案.docx》由会员分享,可在线阅读,更多相关《自适应推技术的WEB实时监视解决方案.docx(15页珍藏版)》请在冰点文库上搜索。
自适应推技术的WEB实时监视解决方案
自适应推技术的WEB实时监视.解决方案
北京市天元网络技术股份有限公司
本文档属北京市天元网络技术股份有限公司所有
未经允许,不可全部或部分发表、复制或使用于任何目的。
文件修改记录
修改日期
版本号
修改内容
修改人
审核人
批准人/日期
2011-4-2
Draft1.0
文档初始建立
xiegh
1BlazeDS技术1
2名词与术语2
3系统设计与实现3
3.1总体设计3
3.2整体结构4
3.3关键类描述5
3.3.1SendRealTimeDataAdapter5
3.3.2ReceiveRealTimeDataServlet6
3.3.3SendRealTimeDataMsg6
3.3.4FlexClient订阅消息7
3.4配置文件设定8
1BlazeDS技术
BlazeDS是Adobe公司开源免费数据服务框架产品,用于简化RIA应用的数据访问与驱动,并极大提高数据访问性能,其中最关键的是具有实时的数据推送技术,可用于真正的实时应用系统。
BlazeDS提供了通过消息服务实现服务器和Flex客户端进行数据交互功能,以消息的订阅/发布模式实现推技术发送数据模式,使得开发实时应用系统成为可能,并且可以自定义队列处理器,在这个处理器里面可以合并消息(用队列里存在消息组装成一个新的消息),可以按任意的规则对消息重新排列,可以按照任意的规则过滤消息,可以把消息发送到确定的网络层,可以控制发给每个客户端消息的速率,可以定义发给每个客户端的消息内容及顺序,使得自适应推送成为可能。
下图3-1,3-2分别展示了BlazeDS客户端构架与服务端构架:
2名词与术语
缩写或术语
解释
Channels
通道封装了消息格式、网络协议,及与服务、目标源和应用程序代码之间的钩脱网络行为。
通道格式化消息,并把消息转化成指定网络格式,然后发送这些消息到后台的端点。
通道也增强了发往服务端及服务端返回的消息流的秩序,确保客户端与服务端之间能够以一致、可预见格式方式进行交互。
Endpoints
基于servlet的Endpoints(端点)运行在J2EEservletcontainer中的,这就意味着servlet为endpoints操纵着theI/OandHTTPsessions,实际上Endpoints被MessageBrokerServlet控制,BlazeDSFlex客户端用channels(通道)和endpoints通信,在服务器上,channels和endpoints有一对一的对应关系。
Destinations
代表服务端代码,连接生产者与消费者之间的组件。
定义了一个目标源之后,一定要为这个目标源指定一个或多个消息通道来传送消息,当然也可以引用一个消息适配器或配置好的适配器。
MessageService
维护消息目标源及每个客户订阅的目标源的列表。
可以配置消息服务走在一个或多个通道之上来传送消息。
MessageBroker
消息代理,它职责就是把messages发给到services,它是BlazeDs在服务器上的核心。
endpoint处理完一个request,也即是把messages从request抽取出来,然后传给MessageBroker,然后MessageBroker就检测这个消息的destination,接着把它传给它想到的服务目的地。
3系统设计与实现
系统采用Tomcat6作为Web服务器,FlexSDK开发的UI作为Web监视界面,使用BlazeDS连接监视UI与Java编写业务处理对象通信,数据库采用电力系统常用的Oracle。
3.1总体设计
因为我们的后台采集系统及通信网业务监视功能已经非常成熟,不需要过多的篇幅去介绍,设计的焦点着重关注与BlazeDS实时消息推送功能有关的设计,其它已成型的功能不再详细描述。
为了使监视数据更具有实时性,设计中考虑了在后台采集系统上加一个基于HTTP协议的数据发送适配器,职责专门把采集到的实时数据按照一定的数据格式发送到通信网监视系统侧的数据接收服务模块,再通过通信网监视系统侧的消息发送服务模块把数据接收服务模块接收到数据按照一定的分类组成消息通过BlazeDS提供的StreamingAMFChannel发布到特定目标源A(在BlazeDS的配置文件messaging-config.xml和services-config.xml中配置),然后Flex客户端通过订阅模式从目标源A中获取自己本身需要的数据,这样后台采集系统可以实时把数据推送到FLEX客户端。
同时Flex客户端也可以通过BlazeDS提供远程对象服务去访问数据库。
总体设计思路如下图5-1-1:
数据网网元
……
厂家网管
BlazeDS消息服务
后台采集系统
FlexClient1
FlexClient2
FlexClientn
数据库
TOMCAT6
WebContainer
数据接收服务
消息发送服务
HTTP
发布各类消息
订阅
订阅
数据发送适配器
订阅
RPC
图5-1-1
3.2整体结构
在下图5-2-1中展示了设计的系统逻辑结构,图中列出了后台采集系统、通信网络监视系统之间关系及各个系统包含的功能子元素。
在后台采集系统中加入一个发送实时适配器(SendRealTimeDataAdapter),职责是把采集到的实时数据组织成XML串,通过HTTP协议发送到监视系统的数据接收服务(ReceiveRealTimeDataServlet)。
在通信网络监视系统中包含三部分,用Java编写的各个功能包;BlazeDS框架包及与其相关配置文件;Flex编写通信网络监视UI对象。
整个监视系统运行在基于JAVA的Web容器中。
下面分别对其详细描述:
1、ReceiveRealTimeDataServlet是一个CGI对象,能够随时收到给它发送的HTTP请求和数据,它处于监视系统侧,职责是把接收到实时数据经过一定的处理后,组成消息发送通过消息发送服务(SendRealTimeDataMsg)发布到BlazeDS中,作为消息的生产者,FlexUI客户端可以根据本身的需要订阅需要的数据。
2、dto包中存放所有数据传输对象;dao包中存放所有对数据库的访问对象;custqueue包是自定义队列处理器和读取消息配置属性的对象,通过这些对象可以合并消息(用队列里存在消息组装成一个新的消息),可以按任意的规则对消息重新排列,可以按照任意的规则过滤消息,可以把消息发送到确定的网络层,可以控制发给每个客户端消息的速率,可以定义发给每个客户端的消息内容及顺序,完成自适应的消息推送功能。
3、FlexClient是代表通信网络监视系统UI部分,完成监视业务的呈现,是实时消息的消费者。
图5-2-1
3.3关键类描述
3.3.1SendRealTimeDataAdapter
SendRealTimeDataAdapter处于后台采集系统侧,功能用于向监视系统发送以XML串表达的网络实时数据。
XML的格式内容可以根据通信网络监视系统的要求定义需要的格式,比如端口告警数据,可以这样定义, 32: 10’alarmcontent=’930293’alarmlevel=’2’alarmobj=’993092309393’/>
可以定义与监视之间握手交互协议,如果监视系统成功收到,则给SendRealTimeDataAdapter回送一个接收成功的标志,如果设备返回一个失败标志,这样对于发送失败的数据可以后面再发,或集中到网络系统比较空闲时进行群发。
3.3.2ReceiveRealTimeDataServlet
ReceiveRealTimeDataServlet是个Servlet,是一个CGI对象,处于通信网络监视系统侧,只要Web服务器启动了,这个服务起来了,可以和Web服务器一样可靠、稳定和相同的运行时间。
它的功能就是接收SendRealTimeDataAdapter发送过来的实时数据,接收完毕进行处理,然后调用SendRealTimeDataMsg发送消息。
3.3.3SendRealTimeDataMsg
SendRealTimeDataMsg的主要功能是发送消息,关键代码如下:
MessageBrokermsgBroker=MessageBroker.getMessageBroker(null);
StringclientID=UUIDUtils.createUUID();
AsyncMessagemsg=newAsyncMessage();
msg.setDestination("adaptive_push_data");//指定目标源,在messaging-config.xml文件配置,客户端接收时也需要这个目标源,这样消息才能路由到客户端
msg.setClientId(clientID);
msg.setMessageId(UUIDUtils.createUUID());
msg.setTimestamp(System.currentTimeMillis());
msg.setHeader("DSSubtopic","portalarm");//消息头,也是此条消息的主题,客户端中可以根据主题来订阅需要消息数据,实际中可以设备ID或端口ID号来指定,以便FlexUI中可以根据设备ID直接就可以订阅到本设备的数据。
msg.setBody(alist);
msgBroker.routeMessageToService(msg,null);
3.3.4FlexClient订阅消息
/**
*功能:
订阅消息
*
*/
privatefunctionsubscribe(symbol:
String):
void{
varurl:
String="http:
//192.168.90.144:
8088/adaptivemsg/";
varmyStreamingAMF:
StreamingAMFChannel=newStreamingAMFChannel(url+"my-streaming-amf",url+"messagebroker/streamingamf");
varmyPollingAMF:
AMFChannel=newAMFChannel(url+"per-client-adaptive-polling-amf",url+"messagebroker/amfpolling");
varchannelset:
ChannelSet=newChannelSet();
channelset.addChannel(myStreamingAMF);
channelset.addChannel(myPollingAMF);
varconsumer:
Consumer=newConsumer();
consumer.destination=“adaptive_push_data”;//Flex客户端作为一个消费者,订阅某个目标源的消息
consumer.subtopic="portalarm";//订阅某个主题的消息
consumer.channelSet=newChannelSet([seleChannel]);
consumer.channelSet=channelset;
consumer.addEventListener(MessageEvent.MESSAGE,messageHandler);
consumer.addEventListener(MessageFaultEvent.FAULT,faultmsg);consumer.subscribe();
}
/**
*功能:
把收到消息进行处理
*
*/
privatefunctionmessageHandler(event:
MessageEvent):
void{
varreceivedAC:
ArrayCollection=event.message.bodyasArrayCollection;
//呈现业务代码
……..
}
3.4配置文件设定
要使用BlazeDS的消息服务,需要配置修改WEB-INF\flex\messaging-config.xml与WEB-INF\flex\services-config.xml文件,本案例在WEB-INF\flex\messaging-config.xml中加入如下配置信息:
—设定目标源,消息发送者(生产者)与接收者(消费者)都要指定其共同目标源--> WEB-INF\flex\services-config.xml文件中加入如下配置信息: —基于流的通道,消息才是实时的--> //{server.name}: {server.port}/{context.root}/messagebroker/streamingamf"class="flex.messaging.endpoints.StreamingAMFEndpoint"/> --连接闲置超时时间单位分--> --最大的客户端同时连接数量--> --服务器向客户端发送的心跳测试时间间隔单位毫秒--> -- 配置个版本浏览器的同一会话允许的最大连接数量最大数量等于浏览器允许的最大连接数减1。 因为每个streamingAMF或者HTTP通道事实上需要两个浏览器HTTP连接,一个连接需要不断处 理服务器端与通道紧密相关的客户端的响应。 另外需要一个短暂连接,只有当数据需要传送到服务器时,它才脱离浏览器连接池; 当短暂连接不再需要时,它立即被释放回浏览器连接池。 --> --MSIE5,6,7默认持续性的HTTP连接数最大是2.--> --MSIE8最大是6.--> --Firefox1,2最大是2.--> --Firefox3最大是6.--> --Safari3,4最大4.--> --Chrome0,1,2最大6.--> 在WEB-INF/Web.xml配置实时数据接收服务:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自适应 技术 WEB 实时 监视 解决方案
![提示](https://static.bingdoc.com/images/bang_tan.gif)