统计平台项目总体架构设计方案

news2025/1/22 21:10:54

总体规划

1.1 设计原则

按照本项目的建设目标,结合本项目具有涉及范围广、建设规模大、数据构成复杂等特点,在设计阶段需遵循一些重要原则,以保障后续建设的顺利衔接和有效执行。

1、规范性

系统设计开发遵循通用的国际规范及各系统间接口标准,保障中台基础信息数据库及应用系统之间能够根据业需要实现有效的互连。

2、开放性

系统设计的各种接口在遵循规范性原则的基础上,保证其可以集成不同系统或平台供应商、软件供应商的产品。

3、先进性与成熟性相结合

系统设计采用先进成熟的技术和手段,以保障系统具有高效、全面和稳定等良好品质。系统采用先进成熟的总体构架,数据采集、整合、应用服务等采用目前主流J2EE、中间件等技术。

4、实用性

系统设计要切实保证实用性,能够解决项目的实际需求。

5、可扩展性

系统设计应充分保证系统容量、处理能力和业务范围具有良好的扩展能力;具有适应业务变化的能力,对于系统用户数量及业务量的增长、规则或代码的变化、业务单据的变更、业务流程重组等,应保证业务变化对系统运行不造成影响。

6、可靠性

保证系统具有较高的可靠性和完善的错误处理机制和自动失效转移,保证系统能够提供7x24小时不间断访问服务。

7、易用性

系统设计需要保证系统软件容易使用,一方面是方便各类服务对象,另一方面是方便系统管理员和业务管理员。功能界面风格和操作流程一致,突出用户的中心地位,保证用户使用习惯。

8、可维护性

采用面向服务的架构设计,以及结合动态流程建模,增强系统的可配置能力。

9、可移植性

采用轻量级J2EE技术体系,保障系统能跨不同平台进行移植。

10、可管理性

保证系统应该具有完善的管理机制,保证所选产品应具有良好的可管理性和可维护性。

11、安全保密性

保证系统在运营过程中管理的各种信息的安全,保证系统与其它相关系统信息交换过程的安全;保证系统应用服务的安全。对系统的操作需严格按照操作权限进行,并对每项操作留下完整的日志记录备查。

12、自主可控

遵循自主可控的原则建设本项目。

1.2 技术特点

根据本项目总体设计要求,本平台将采用SOA设计思想、服务总线+组件的技术方法,数据采集交换采用组件化方式实现各种场景下的信息交换,解决信息服务多元化,以及系统之间的信息共享、一致性等问题。在实现技术上,采用基于Springboot的微服务技术体系、运用Rest Full应用技术、Json数据交换技术,业务系统为B/S模式等。数据中台提供各部门系统接入的接口,实现数据资源中心与各信息系统的有机结合,以统一的接口规范实现不同数据库、不同数据格式的数据提取。

在遵循系统设计原则的基础上,在本项目中还将采用如下技术:

1.2.1 大数据技术

大数据技术,就是从各种类型的数据中快速获得有价值信息的技术。大数据领域已经涌现出了大量新的技术,它们成为大数据采集、存储、处理和呈现的有力武器。大数据处理关键技术一般包括:数据采集、数据预处理、数据存储及管理、数据分析及挖掘、数据展现和应用(数据检索、数据应用、数据安全等):

1、大数据采集技术

大数据是指通过共享数据交换平台从各业务系统采集过来而形成产生的各种类型的结构化、非结构化的海量数据,是大数据知识服务模型的根本。本项目建设重点要突破分布式高速高可靠数据采集交换、高速数据全映像等大数据收集技术;突破高速数据解析、转换与装载等大数据整合技术;设计质量评估模型,开发数据质量技术。

2、大数据预处理技术

主要完成对已接收数据的辨析、抽取、清洗等操作。

抽取:因获取的数据可能具有多种结构和类型,数据抽取过程可以帮助我们将这些复杂的数据转化为单一的或者便于处理的构型,以达到快速分析处理的目的。

清洗:对于大量的数据,面临着数据不一致和冲突的问题,因此要对数据通过过滤“去噪”等方式提取出有效数据。

3、大数据存储及管理技术

大数据存储与管理要用存储器把采集到的数据存储起来,建立相应的数据库,并进行管理和调用。重点解决复杂结构化、非结构化大数据管理与处理技术。主要解决大数据的可存储、可表示、可处理、可靠性及有效传输等几个关键问题。对于结构化数据,建议采用主流可控的开源关系数据库,非结构化数据采用可靠的分布式文件系统或者网络文件系统。

1.2.2 面向服务的技术架构SOA

SOA架构随着互联网应用技术的深入,完全可以看作是B/S模型、Web Service技术的自然延伸,现如今基于Json数据格式的Restful标准接口已经成为SOA架构接口标准在互联网应用环境下的最佳实践。业务系统可以采用组件化的方式灵活组装配置在一起,实现统计平台各个业务间的解耦,较之以往各部门面临业务协同时紧耦合地绑定关系,SOA将能够更加从容地面对业务的急剧变化。SOA架构图如下。

图表 1 SOA架构

SOA具有重用、松耦合、标准接口和基于开放标准等特征,如下图。

图表 2 SOA特性

在本平台中,统计分析等业务应用将被拆分成一个个的微服务,原本紧密耦合的业务将被分解成松耦合的独立业务组件,通过对微服务的组装,完成位置应用系统的构建。微服务在运行状态上独立,每个微服务也只是业务流程中的一个节点,因此,在具体应用系统中,需要多个微服务的集合才能表达完整的业务流程,点、线、面、体的结合在整体上实现流程端到端、业务全景联动的业务一体化系统。为此,必须构建起由数据模型、业务模型和集成模型所构成的领域模型,用于表达完整的业务流程。

微服务的核心是避免单体系统庞大复杂、可维护性、可扩展性、可复用性差等问题;模型的核心是解决微服务间的业务流和数据流问题,缺乏模型支撑的微服务将如同一堆规格不一的散乱零件,比单体系统更容易造成数据孤岛和流程断裂。而完全通过写定制代码实现的微服务调用及业务集成模式,将随着微服务数量的增加,出现服务间调用关系和集成关系越来越乱,越来越复杂等问题,从而导致最终应用系统的不可维护。公安数据统计综合应用平台基于用模型驱动的微服务设计架构,正是基于为了解决这个问题而考虑。

1.2.3 报表引擎复杂

基于报表引擎的复杂性,结合项目人员、周期实际情况,建议采购第三方成熟的报表分析引擎,比如SmartBI、帆软、网易数帆等,以下架构设计报表集成选取的是与事业部之前有过合作的SmartBI产品作为集成示例。

1.2.3.1 BI自研风险

《统计平台实施方案》中关于报表BI相关功能需求,项目团队整体评估后,基于项目组和部门人员无对应相关产品和项目经验,我们尚无完善的BI设计方案,导致存在设计及开发风险,具体涉及到有风险的自研内容包含但不限于如下几点:

1)平台支持根据预设好的信息自动生成制式统计报表,并根据统计数据服务中心数据自动填充统计数据。

2)制式报表:根据配置信息和基本信息制成一个成型的报表。数据来源为每个展现内容与数据库数据字段之间的映射关系,按照展现内容号、展现名称、来源数据表名、来源字段、统计方式进行设定。模型公式是展现内容中一些不是直接来源于数据表,而是经过条件判定后需要进行计算的计算公式。按照展现内容号、展现名称、模型公式、公式说明进行设定。模型间关联有两种:主表+续表,父表+子表。模型配置:对制式统计报表模型的配置信息和基本信息进行设定,从而实现制式统计报表统计功能。

3)自定义分组报表。由基层民警基于WEB方式使用拖动字段等方式,直接完

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1454718.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

0205-2-数据链路层

第 3 章 数据链路层 使用点对点信道的数据链路层 数据链路和帧 数据链路层使用的信道主要有以下两种类型: 点对点信道。这种信道使用一对一的点对点通信方式。广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多…

JAVA并发编程之ConcurrentHashMap详解

ConcurrentHashMap 一、ConcurrentHashMap写入数据流程 一般在项目中使用ConcurrentHashMap时,都是作为JVM缓存使用的。 ConcurrentHashMap是线程安全的。如果你项目涉及到了多个线程都会操作key-value结构时,别用HashMap,一定要上Concurr…

【Java多线程】线程中几个常见的属性以及状态

目录 Thread的几个常见属性 1、Id 2、Name名称 3、State状态 4、Priority优先级 5、Daemon后台线程 6、Alive存活 Thread的几个常见属性 1、Id ID 是线程的唯一标识,由系统自动分配,不同线程不会重复。 2、Name名称 用户定义的名称。该名称在各种…

Shellcode免杀对抗(Python)

Shellcode Python免杀,绕过360安全卫士、火绒安全、Defender Python基于cs/msf的上线 cs 执行代码2种可供选择 执行代码 1: rwxpage ctypes.windll.kernel32.VirtualAlloc(0, len(shellcode), 0x1000, 0x40) ctypes.windll.kernel32.RtlMoveMemory…

线程安全性的原理分析学习

初步认识Volatile 一段代码引发的思考 下面这段代码,演示了一个使用volatile以及没使用volatile这个关键字,对于变量更新的影响 package com.sp.demo;/*** author : lssffy* Description :* date : 2024/2/16 18:42*/ public class VolatileDemo {publi…

阿里云香港轻量应用服务器是什么线路?cn2?

阿里云香港轻量应用服务器是什么线路?不是cn2。 阿里云香港轻量服务器是cn2吗?香港轻量服务器不是cn2。阿腾云atengyun.com正好有一台阿里云轻量应用服务器,通过mtr traceroute测试了一下,最后一跳是202.97开头的ip,1…

C++学习Day06之继承基本语法

目录 一、程序及输出1.1 没有继承1.2 使用继承 二、分析与总结 一、程序及输出 想象在移动端看资讯,顶部、底部、左侧和中间内容,左侧滑动栏有新闻、体育…,点击不同的新闻,中间内容呈现不同主题的文字叙述,在代码里该…

vivado RAM HDL Coding Techniques

Vivado synthesis可以解释各种RAM编码风格,并将它们映射到分布式RAM中或块RAM。此操作执行以下操作: •无需手动实例化RAM基元 •节省时间 •保持HDL源代码的可移植性和可扩展性从编码示例下载编码示例文件。 在分布式RAM和专用RAM之间的选择块存储器…

在外包干了两年的点点点,人快废了。。。

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 简单的说下,我大学的一个同学,毕业后我自己去了自研的公司,他…

Java面向对象案例之设计用户去ATM机存款取款(三)

需求及思路分析 业务代码需求: 某公司要开发“银行管理系统”,请使用面向对象的思想,设计银行的储户信息,描述存款、取款业务。 储户类的思路分析: 属性:用户姓名、密码、身份证号、账号、帐户余额 方法&a…

对前端限流操作(Redis版本)4种算法

固定时间窗口算法 固定时间窗口算法也可以叫做简单计数算法。网上有很多都将计数算法单独抽离出来。但是笔者认为计数算法是一种思想,而固定时间窗口算法是他的一种实现包括下面滑动时间窗口算法也是计数算法的一种实现。因为计数如果不和时间进行绑定的话那么失去…

【大厂AI课学习笔记】【2.2机器学习开发任务实例】(3)数据准备和数据预处理

项目开始,首先要进行数据准备和数据预处理。 数据准备的核心是找到这些数据,观察数据的问题。 数据预处理就是去掉脏数据。 缺失值的处理,格式转换等。 延伸学习: 在人工智能(AI)的众多工作流程中&#…

2024.02.18作业

1. 使用fgets统计给定文件的行数 #include <stdio.h> #include <stdlib.h> #include <string.h>int main(int argc, char const *argv[]) {if (argc ! 2){puts("input file error");puts("usage:./a.out filename");return -1;}FILE* f…

单片机学习笔记---AD/DA工作原理(含运算放大器的工作原理)

目录 AD/DA介绍 硬件电路模型 硬件电路 运算放大器 DA原理 T型电阻网络DA转换器 PWM型DA转换器 AD原理 逐次逼近型AD转换器 AD/DA性能指标 XPT2046 XPT2046时序 AD/DA介绍 AD&#xff08;Analog to Digital&#xff09;&#xff1a;模拟-数字转换&#xff0c;将模拟…

【MySQL】学习多表查询和笛卡尔积

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-N8PeTKG6uLu4bJuM {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

JMeter接口测试数据分离驱动应用

步骤&#xff1a; 创建csv文件&#xff0c;编写接口测试用例 新建线程组——创建循环控制器&#xff08;循环次数填用例总数&#xff09; 创建CSV数据文件设置&#xff0c;设置参数。&#xff08;注意&#xff1a;是否允许带引号&#xff1f;&#xff1a;一定要设置为true&a…

10M上下文,仅靠提示就掌握一门语言,Google Gemini 1.5被OpenAI抢头条是真冤

这两天&#xff0c;几乎整个AI圈的目光都被OpenAI发布Sora模型的新闻吸引了去。其实还有件事也值得关注&#xff0c;那就是Google继上周官宣Gemini 1.0 Ultra 后&#xff0c;火速推出下一代人工智能模型Gemini 1.5。 公司首席执行官 Sundar Pichai携首席科学家Jeff Dean等众高…

Python输出改变字体颜色方法(附颜色大全)

一、使用示例 print("\033[31m红色字体\033[0m") print("\033[32m绿色字体\033[0m") print("\033[33m黄色字体\033[0m") print("\033[34m蓝色字体\033[0m") print("\033[35m紫色字体\033[0m") print("\033[36m青色字体…

驶向未来:3D可视化模型重塑我们的道路认知

在科技的浪潮中&#xff0c;每一个革新都是对人类未来生活的深度洞察。而今&#xff0c;当可视化这一技术走进我们的视野&#xff0c;它不仅是一场视觉盛宴&#xff0c;更是一次对未来出行方式的全新探索。 一、从平面到立体&#xff0c;解锁道路新视角 你是否曾站在十字路口&…

【Python如何在列表中随机抽出一个元素】

1、python代码如下&#xff1a; import random a [2, 4, 8, 9, "whats up"] q random.choice(a) # 随机从列表a中输出一个元素 b random.choices(a) # 随机从列表a中取出一个元素输出一个列表 lucky_num random.randint(1, 50) # 随机从1-50中取出一个整数包…