一种构建面型3s智慧服务商店系统及其设计方法_3

文档序号:9251064阅读:来源:国知局
换服务器互通即可,最后各个服务节点数据流将组成网状拓扑结构(如图4所示),每 个节点之间都能相互通信。
[0061 ] 3. 5服务数据交换处理流程设计
[0062] 图6所示为服务数据交换的流程,各个服务节点数据交换过程中有3个参数需 要存储:〇utputData、InputData、Log。其中OutputData用于存储发送出去的服务数据, InputData用于存储接收到的服务数据,Log是交换日志存储,用来作为消息控制器,S卩:记 录每次服务数据交换处理的时间和次数。3个参数都存在MySQL数据库中,以消息队列方式 进行可靠的存储。
[0063] 如图6所示,本发明的服务节点间数据交换流程包括如下:
[0064] 步骤1 :服务节点1作为发送方,将业务数据库中读到的数据发送到OutputData 中;
[0065] 步骤2:将发送日志信息写到日志表Log中;
[0066] 步骤3 :定时轮循待发送的服务数据记录,将服务数据和日志信息包装后发送至 服务数据交换中心;
[0067] 步骤4:服务数据交换中心将消息发送给服务节点2,保证只有消息正确发送后才 删除消息缓冲列表中的消息;
[0068] 步骤5 :服务接收方将业务数据存储到中间数据库InputData中,同时存储接收日 志到日志表Log中,系统记录服务数据到达时间;
[0069] 步骤6 :服务接收方定时轮循接收日志;
[0070] 步骤7 :根据轮询到的服务日志信息从数据库中下载服务数据到相应的业务系统 中,同时系统记录服务数据下载时间。
[0071] 3. 6服务数据交换处理中心的实现
[0072] 如图3的服务数据UML类图,本发明可知每个接入的服务数据包含数值属性 Property和服务所属分类Resource两个属性,以一个二元组〈Property, Resource〉的形 式来表示,例如智慧健康场景下的心跳服务数据可以表示为〈Health,Heart〉形式,为了便 于在各个模块之间传输数据,本发明将其处理为〈key, value〉键值映射的JSON数据格式 {"Health":"Heart"},再细分到具体的Heart数值,一旦服务支撑层读取到Heart类型 的参数格式,将会把Heart心跳的属性名和属性值传输到上层服务数据交换处理中心,为 了便于传输,同样采用JSON数据格式进行传输,如{"heart":80},表示心跳数值为80。
[0073] 本发明来设计数据交换中心所需要的数据表,其中InputData数据表表示服务数 据接收数据表,包含ID,Data,Type,Date,Desc字段,ID标识主键,Data表示服务数据的属 性值,Type表示服务数据的分类类型,比如属于智慧健康分类,Date表示接收数据的时间, Desc表示数据的描述,比如该服务数据表示心跳数据。OutputData数据表表示服务数据发 送数据表,所包含字段与InputData数据库字段一致,Log数据表表示服务数据交互日志, 包含ID,Date,Desc,Target字段,ID标识主键,Date表示操作时间,Desc表示操作过程描 述,Target表示服务数据接入及输出方向,比如心跳数据存储到智慧健康分类里面,那么输 出方向就是智慧健康分类数据。
[0074] 如图1系统架构图所示,本发明的服务支撑层将各种感知信息流,事件流,第三方 接入的服务数据都按照以上数据包格式处理成JSON数据总线,然后传送到服务感知中间 件层的服务数据交换处理中心进行处理。
[0075] 如图6所示是数据交换处理流程,数据交换处理中心是各个服务数据发送、接收 的一个入口,业务融合层各个业务系统交换数据都要通过这个入口调用服务数据。服务数 据发送接口主要提供服务接收方的位置及所属分类,然后通过该发送接口将数据发送到服 务接收客户端程序,以服务节点1作为服务数据发送方,服务数据发送接口的业务逻辑伪 代码如下:
[0076] Stepl: ServiceNodelconnect the Center Database such as MySQL;//服务节 点I连接数据库。
[0077] Step2: Commit the Service Data to the Switch Center;//提交服务数据到交 换中心。
[0078]Step3:Connection
[0079] connection=ConnectionCenter.createConnectThreadO;// 初始化连接池线 程。
[0080]Step4:connection,start() ;//开始连接,读取OutputData数据表中的数据。
[0081]Step5:SmartServiceSession
[0082]session=connect.creationSession(True,AutoAck) ;// 初始化 3S智慧服务商 店发送或者接收服务数据的线程。
[0083]Step6:Destionationdest=session.createDestion( "Health");//获取智慧 健康服务数据的地址。
[0084]Step7:Supplysupplyer=session.create(Dest) ;//获取服务数据的提供者信 息
[0085]if(true) {//发布/订阅服务数据伪代码
[0086]St印8:将获取到的数据推送到优先队列;
[0087] St印9:将服务提供者的信息和数据发送时间写入Log日志数据库;
[0088]St印10:关闭数据库连接;
[0089] }
[0090] 服务数据接收端主要是连接服务数据交换处理中心,然后将数据下载到服务接收 队列,下面以服务节点2为例说明它是如何下载服务节点1提供的数据点并取出到消息队 列当中,伪代码如下所示:
[0091]Stepl:ConstructtheServiceDataReceiverRl;//创建一个服务数据接收者 R1,例如接收智慧健康服务数据的电子病历使用者。
[0092]Step2:SmartServiceStoreUser
[0093]ServiceUser=session.createUser(dest) ;// 从智慧健康服务数据路径dest 获取服务用户信息。
[0094] St印3:创建数据库连接池,接收服务节点1发送的数据;
[0095]St印4:判断服务数据所属类型;
[0096]Step5:得到数据序列化对象,并将其存储到接收数据队列;
[0097]St印6:建立接收服务数据的缓冲区Buffer;
[0098]Step7:While(数据长度不为0){
[0099]St印8:将其按为存储到Buffer缓冲区;
[0100] }
[0101]St印9:关闭数据接收队列,释放资源。
【主权项】
1. 一种构建面型应用平台3S智慧服务商店的系统,其特征在于,所述系统采用分层结 构,包括:服务支撑模块、服务感知中间件模块,业务融合模块和应用层模块; 服务支撑模块的功能:能够接入不同的服务数据,用于提供对不同粒度构件的即插即 用支持,即:接入各种数据流,信息流,事件流,感知流,从而利用不同的信息输入或输出实 现智慧服务的接入支撑,为整个平台提供可靠的数据源; 服务感知中间件模块的功能:获取服务支撑平台的各
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1