9A文事件引擎中心概要设计说明书Word下载.docx
《9A文事件引擎中心概要设计说明书Word下载.docx》由会员分享,可在线阅读,更多相关《9A文事件引擎中心概要设计说明书Word下载.docx(66页珍藏版)》请在冰豆网上搜索。
2.4非功能性需求概述6
第3章总体设计8
3.1总体功能8
3.2整体架构9
3.3分层设计11
第4章系统核心模型12
4.1事件中心模型12
4.2事件中心权限模型13
4.3系统关键表14
4.3.1输入事件模板(AICEP_IN_EVENT_TEMPLATE)15
4.3.2属性定义表(AICEP_ATTR_DEF)16
4.3.3事件模板属性(AICEP_TEMPLATE_ATTR_REL)16
4.3.4系统表(AICEP_ACCESS_SRS)16
4.3.5模板目录表(AICEP_TEMPLATE_CATALOG)17
4.3.6事件模板与目录的关系表(AICEP_TEMPLATE_CATALOG_REL)17
4.3.7规则配置表(AICEP_RULE_CONF)18
4.3.8异常编码表(AICEP_ERCEPTION_CODE)18
4.3.9事件模板和规则关系表(AICEP_TEMPLATE_RULE_REL)18
4.3.10通道表(AICEP_CHANNEL)
【实际存放主题相关信息】19
4.3.11通道扩展表(技术参数调整)(AICEP_CHANNEL_ATTR)19
4.3.12主题表(AICEP_TOPIC_DEF)
【需删除】19
4.3.13输入适配器主动获取数据用(数据源表)(AICEP_IN_ADAPTER)20
4.3.14适配器属性配置表(纵表)(AICEP_ADAPTER_ATTR)20
4.3.15规则通道关系表(用于订阅)(AICEP_RULE_CHANNEL_REL)20
4.3.16输出事件订阅表(AICEP_EVENT_SUBSCRIBE)21
4.3.17系统接入IP关系表(AICEP_ACCESS_IP)21
4.3.18租户表(AICEP_MULTI_TENANCR)21
4.3.19输出属性表(AICEP_OUT_ATTR)21
4.3.20静态数据表(AICEP_STATIC)22
4.3.21系统与通道关系表(AICEP_SRS_CHANNEL)
【表字段待确定】22
第5章系统关键设计23
5.1配置视图23
5.2事件在线发布23
5.3复杂事件分布式处理24
5.4事件处理过载保护25
5.5伸缩性设计26
5.6高可用设计26
5.7事件接入安全27
5.8事件的热发布27
第6章事件中心系统设计28
6.1系统设计28
6.2系统处理流程28
6.2.1事件配置28
6.2.2事件处理34
6.2.3监控管理48
6.2.4多租户管理49
6.2.5权限管理49
6.2.6接入接出管理49
6.3时序图52
6.3.1事件配置53
6.3.2事件处理57
6.4用例图58
6.4.1事件配置58
6.5出错信息60
第1章引言
1.1编写目的
本文档详细描述了事件中心产品的总体概述、设计目标、周边系统边界、功能需求、非功能需求及接口实现等。
文档用途如下:
该文档主要提供了以下几个方面内容:
∙本文档可作为事件开发的依据;
∙本文档可作为事件中心产品测试验收标准。
1.2阅读对象
本文档适合事件中心产品设计和开发人员,设计和开发中使用到事件处理或者计划使用事件处理的相关人员。
也适合于对事件处理以及事件驱动感兴趣的相关人员,本文档的阅读对象以及角色如下:
∙核心产品设计工程师
∙核心产品开发工程师
∙核心产品测试工程师
∙解决方案设计和开发工程师
∙本地实施工程师
∙其他对事件处理感兴趣的相关人员
1.3术语与缩写解释
缩写、术语
解释
CEP
复杂事件处理
JMS
JavaMessageService
HTTP
超文本传输协议
JSON
JavaScriptObjectNotation
ESPER
开源的复杂事件处理和事件流处理应用程序组件
EPL
EventProcessingLanguage
事件接入方
向统一事件中心的提供数据源接入的对象,可为某一渠道的某一系统
事件订阅方
向统一事件中心的提交订阅事件订阅申请的对象,可为某一渠道的某一系统
事件模板
实现对事件的定义,包含事件ID、事件来源、事件属性、事件分类、事件触发规则等。
事件持久化
对输入事件源的落地存储,用于事件状态同步,异常反查等,存储周期可配置。
第2章系统概述
2.1系统描述
事件中心是针对海量实时数据的复杂事件处理场景设计的。
事件中心基于流计算处理引擎作为底层支撑,采用分布式集群部署,支持多事件源的接入、事件规则的创建、事件规则解析处理以及结果数据的实时输出。
事件中心采用主流标准的接口协议,满足与外围系统的数据交互:
∙事件中心可与亚信自有的其他业务系统、平台进行数据交互;
∙事件中心可与其他厂商系统进行交互,包括与其他厂商承建的电信运营商业务系统的数据交互,以及与其他行业客户的业务系统的数据交互。
2.2设计思路
事件中心作为独立产品,应具备如下特性:
∙产品可独立部署,不依赖于其他业务系统;
∙产品具有良好的可扩展性,设计时考虑分布式及高可用性;
∙产品的输入输出采用标准接口,接口协议支持目前主流的标准协议;
∙产品支持多租户用户管理,以租户的方式实现对用户或用户组的权限管理,以达到资源和数据权限的管理控制;
∙产品提供软件开发工具包,方便外围系统开发集成人员快速掌握产品的集成和使用;
∙产品支持对事件订阅、查询及输入输出的界面配置,实现良好的用户交互;
∙产品有安全控制、异常处理等功能设计,保证运行时的高可靠性。
2.3系统外部关系图
事件中心外界边界关系如图:
1.事件中心可以接收不同渠道数据源的数据:
∙内部渠道:
如网厅、短厅等不同渠道、不同系统的数据。
∙外部渠道:
其他厂家或其他行业的业务系统。
∙可以与能力开放平台对接,进行业务服务的调用/反馈。
2.各个渠道可以对输出的事件进行订阅。
3.特殊说明:
与规则中心的关系:
∙事件中心配置事件规则时支持两种类型的规则:
EPL规则与统一规则中心提供的规则。
∙配置事件对应的规则时,通过界面展现规则中心已配置的规则列表,用于配置选择。
∙新增事件规则原则:
输入事件的元数据满足规则执行时,直接通过事件中心配置实现;
不满足时,通过评估确定是否可以由规则中心实现,否则,要求事件接入方补充元数据;
∙事件中心执行规则时,如果规则归属于统一规则则调用规则中心提供的服务进行规则校验、执行,规则中心执行后返回结果给事件中心,事件中心通过结果做相应的处理。
2.4非功能性需求概述
本系统设计和开发,要充分考虑系统的可靠性、安全性、可管理性、性能保障、可扩展性、可维护性和兼容性,具体要求如下:
可靠性:
主要通过采用双中心部署,来达到系统的高可靠性要求;
同时系统设计时应用软件具有一定的障碍处理和异常恢复能力。
安全性:
安全系统由系统管理员对系统进行实时监控,特别是网络设计中要设置防火墙;
同时软件部分提供严密的操作权限控制和安全管理措施。
可管理性:
软件设计尽量采用参数化设计,使系统能够便于随着主要业务需求的变化做出相应的调整。
性能保障:
本系统支持系统平台的云化部署和资源横向扩展,对页面、接口、后台数据采集的性能要求参考中国移动集团规范。
本系统通过集群和负载均衡,实现web服务器的页面可靠性;
同时,通过软硬件方式实现接口可靠性和数据可靠性。
容灾:
本系统支持双中心方式部署。
可扩展性:
本系统通过云化部署架构(R86),支持服务实例的动态扩展;
支持通用系统功能的可更新和扩展性。
可维护性:
本系统通过数据采集和告警模块支持对自身运行情况的监控和告警,通过灰度发布技术支撑业务功能的在线发布。
安全:
在软件层面,采用认证、密钥、加密协议、时效限制等保障生产过程的安全,对代码存放、访问和事后审计提供支持;
在接口层面,通过技术上的安全控制,实现接口安全。
在物理层面,通过支持双中心实现容灾。
在服务器层面,应用服务器主机的操作系统在安全性上应该能够达到C2安全级别,对系统能提供有效的安全保密措施。
在重要关键服务器的网段上设立防火墙。
核心应用系统服务器主机全部采用双机热备方式,磁盘阵列采用RAID方式对数据进行存储。
在数据层面支撑数据库和其它文件只能被授权用户访问和修改,防止在本地存储或者网络传输的数据受到非法篡改、删除和破坏。
兼容性:
兼容国际、国内的相关标准技术,采用规范的接口和协议,保证系统各组成部分的协同一致。
第3章总体设计
3.1总体功能
事件中心主要是对多事件源进行处理,引入流计算、分布式内存等数据处理技术,接收各类实时事件源的基础数据并进行解析,同时对实时事件进行累积计算,最终将实时复杂事件数据加载到分布式内存中,进行符合规则的数据匹配,支持多事件源的接入、规则的创建、规则解析处理以及结果数据的实时输出。
按照功能进行划分,主要包括以下几个处理模块:
接入管理、事件配置、事件处理、权限管理、监控管理、多租户管理等。
事件配置模块包括事件注册、事件订阅管理、事件下线、事件发布等功能,主要通过界面操作实现相关配置;
监控管理实现对系统关键性能指标的监控,分为三种类别分别为:
系统监控、服务监控、应用监控。
系统监控用于监控集群节点的CPU、内存等指标。
服务监控包括Kafka服务监控、Zookeeper服务监控、Redis服务监控、Storm服务监控。
应用监控包括事件处理过程中的过程数据,如:
平均处理时间、已处理数据量、处理是否延时等;
接入接出管理实现对接入事件中心的渠道、系统、主机IP的配置管理;
权限管理包括用户管理、菜单管理、角色管理、用户权限管理配置等功能;
多租户管理包括多租户用户管理和租户用户资源管理,通过租户模式实现数据及计算、存储资源权限的控制;
事件处理主要包括接入安全控制、接入适配、输入事件预处理、事件接收、事件规则运算、事件规则触发、事件持久化扩展、输出报文转换、事件输出、异常记录等功能。
3.2整体架构
事件中心整体架构充分考虑以大数据为背景的前提进行设计,在事件处理过程中采用读写分离,数据不落地的方式,整个处理过程在内存中完成。
各服务组件功能如下:
Kafka
对事件的存储支持负载均衡和横向扩展能力,并提供了高效可靠的消息传递机制进行平台无关的数据交流,通过提供消息传递和消息排队模型,在分布式环境下扩展进程间的通信。
Storm
分布式实时处理框架,能够实现业务的分布式实时处理,保障集群的高可用和事件处理的横向扩展。
Esper
复杂事件处理引擎,能够支持事件的动态加载处理、高吞吐量,但因为不支持分布式所以需与Storm结合。
GroovR
用于Java虚拟机的一种敏捷的动态脚本语言,主要用于对Esper的补充,适用于Esper满足不或比较复杂的业务应用场景处理,支持动态加载。
Cgroup
实现了对事件中心各服务进程的资源隔离,主要用于隔离CPU和内存资源。
Zookeeper
为分布式应用提供一致性服务,提供的功能包括:
配置维护、名字服务、分布式同步、组服务等,协调Kafka数据的生成和消费,Storm主节点与从节点间的事件处理。
Redis
分布式数据缓存:
提供了对中间业务数据缓存的功能,并且所有缓存的数据在磁盘都有保存.
3.3分层设计
第4章系统核心模型
4.1事件中心模型
如图:
4.2事件中心权限模型
4.3系统关键表
关键表名
用途
AICEP_IN_EVENT_TEMPLATE输入事件模板
规范输入事件源,为数据提供统一格式
AICEP_ATTR_DEF属性定义表
提供事件中心所有属性的配置﹑管理。
包括属性归属目录﹑属性标识。
AICEP_TEMPLATE_ATTR_REL事件模板属性
提供事件模板与属性之间映射关系的配置﹑管理。
包括属性映射标识﹑事件模板标识等信息。
AICEP_RULE_CHANNEL_REL规则通道关系表
规则通道关系用于配置规则与通道的关系,
AICEP_EVENT_SUBSCRIBE(输出事件订阅表)
将事件输出到消息中间件,同一事件可以按配置分配到不同的通道下。
订阅者可对输出事件按事件模板编号、分类进行订阅。
AICEP_ACCESS_IP(系统接入IP关系表)
对接入系统的IP的进行验证管理。
可以通过配置对其IP进行新增﹑修改﹑删除管理。
AICEP_MULTI_TENANCR(租户表)
事件中心提供对不同租户的用户相关信息进行配置、管理。
包括租户标识、名称、级别、描述等信息。
AICEP_TEMPLATE_RULE_REL(事件模板和规则关系表)
事件中心提供对事件模板和规则关系的配置﹑管理。
通道表(AICEP_CHANNEL)
事件中心提供对不同通道的相关信息进行配置、管理。
包括通道标识﹑名称﹑通道归属主题等信息。
通道扩展表(技术参数调整)(AICEP_CHANNEL_ATTR)
对通道表的扩展,在通道数量﹑线程数等参数的配置﹑管理。
主题表(AICEP_TOPIC_DEF)
事件中心提供对不同订阅者订阅主题的配置﹑管理。
包括主题标识﹑名称﹑类别等信息。
输入适配器主动获取数据用(数据源表)(AICEP_IN_ADAPTER)
事件中心提供对输入适配器的配置﹑管理。
包括接入方式适配器类型适配器实现类等信息
适配器属性配置表(AICEP_ADAPTER_ATTR)
事件中心提供对适配器属性的配置﹑管理。
包括适配器属性标识﹑适配器ID等信息。
AICEP_TEMPLATE_CATALOG(模板目录表)
事件中心提供模板目录的配置﹑管理。
包括目当标识﹑目录名称﹑目录类别﹑所属域﹑所属系统等信息。
AICEP_TEMPLATE_CATALOG_REL(事件模板与目录的关系表)
事件中心提供模板与目录关系的配置﹑管理。
一个模板只能归属于一个目录,一个目当可以拥有多个模板。
AICEP_RULE_CONF(规则配置表)
配置EPL语句,一个事件可以匹配多条规则,反之,一条规则可以被多个事件关联。
AICEP_ERCEPTION_CODE(异常编码表)
捕获、处理统一事件中心运行过程的各种错误,并使用错误代码标识。
异常编码表中进行配置,对其新增、修改、删除。
AICEP_OUT_ATTR(输出属性表)
配置规则﹑规则通道﹑事件订阅属性之间的关系
AICEP_STATIC(静态表)
配置公共静态数据
输入事件模板(AICEP_IN_EVENT_TEMPLATE)
序号
列名
类型
主键
外键
1
TEMPLATE_ID
模板标识(流水号ID)
NUMBER(12)
■
2
CHANNEL_ID
通道ID
3
TEMPLATE_CODE
模板编码(归属域+归属系统+自增序列号)String
VARCHAR2(32)
4
TEMPLATE_NAME
模板名称String
VARCHAR2(64)
5
TEMPLATE_DESC
模板描述String
VARCHAR2(256)
6
ADAPTER_ID
接入适配器(JMS)
7
CREATOR
创建者
8
MODIFIER
修改者
9
DOMAIN_CODE
归属域String
10
SRS_ID
归属系统String
11
CREATE_DATE
创建时间date
DATE
12
MODIFR_DATE
修改时间date
13
STATE_MODIFR_DATE
状态修改时间date
14
STATE
状态(新建、待上线、上线、下线)状态流程图
NUMBER
(1)
15
MESSAGE_TRPE
报文类型(Rml﹑json)
属性定义表(AICEP_ATTR_DEF)
名称
ATTR_ID
属性ID
CATALOG_ID
属性归属目录
ATTR_CODE
属性编码
ATTR_NAME
属性名称
ATTR_TRPE
属性类型
ATTR_REFER_VALUE
属性参考值
ATTR_DESC
属性描述
修改时间
状态
事件模板属性(AICEP_TEMPLATE_ATTR_REL)
TEMPLATE_ATTR_REL_ID
模板属性ID(流水ID)
模板ID
状态(生效、失效)
ORG_ATTR_CODE
原始属性编码(外围系统的属性编码
系统表(AICEP_ACCESS_SRS)
系统ID(流水ID)
TENANCR_ID
租户ID
SRS_CODE
系统编码
SRS_NAME
系统名称
所属域
SRS_CONTACT
联系人
SRS_TEL
联系电话
SRS_MAILBOR
邮箱
创建时间
模板目录表(AICEP_TEMPLATE_CATALOG)
目录ID(流水ID)
CATALOG_CODE
目录编码
CATALOG_NAME
目录名称
CATALOG_DESC
CATALOG_TRPE
目录类别
PARENT_CATALOG_ID
父目录ID
所属系统
事件模板与目录的关系表(AICEP_TEMPLATE_CATALOG_REL)
TEMPLATE_CATALOG_REL_ID
模版与目录关系ID(流水ID)
事件模版ID
目录ID
规则配置表(AICEP_RULE