DigitalTwins/data/chapter2.tex
2023-03-20 05:46:45 +08:00

83 lines
7.1 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\chapter{系统设计}
\section{系统设计原则}
\subsection{高可用}
高可用性是系统设计中的重要目标之一,旨在确保系统在面对故障、错误或意外情况时能够保持正常运行。在系统设计中要注意负载均衡、自动化任务设计、冗余备份、快速恢复、无状态设计等等问题。
\subsection{高性能}
在本平台设计中,核心性能指标有消息网络的分发能力,硬实时消息的响应速度,主体平台对多种规则模型的处理速度,海量消息的存储能力,用户访问时模型的操作性能、仿真性能等。
\subsection{可扩展性}
可扩展性是本平台设计中核心设计的一点,不单单指服务的可扩展性,比如服务节点可以水平扩增等,还指集群网络的开放程度,能对接现有消息协议,开放消息网络对接和规则模型设计。
\subsection{安全性}
在保持消息网络的开发性上去保证整体平台、节点的安全性,在实践中,消息网络如何在开放协议的基础上保证通信安全。
\subsection{单一职责原则}
任何模块保持职责和功能的最小化,专一化,模块之间不含功能交集,这有助于确保系统的模块化和可维护性,并减少模块之间的依赖性和耦合度
\section{整体结构设计}
在设计数字孪生整体结构时,需要考虑用户使用、硬件通信、云服务特性去考虑设计,同时考虑平台的通用性,可扩展性,容灾恢复,安全性等等。
在整体上采用微服务架构。将系统按照业务功能模块拆分成若干个独立的微服务,每个微服务都能够独立部署和扩展。微服务架构可以提高系统的可伸缩性和可用性,并且可以降低系统的维护成本。
前端采用前后端分离的架构使用现代化的前端框架vue通过API连接到后端服务从而实现前后端分离提高系统的可维护性和可伸缩性。
后端采用分布式架构将不同的业务模块拆分成独立的微服务通过API或消息队列进行通信提高系统的可伸缩性和可用性。同时采用缓存技术如Redis等提高系统的性能。
数据库采用分布式数据库架构将不同的数据拆分到不同的数据库实例中通过数据分片技术进行分布式存储提高系统的可伸缩性和性能。同时采用读写分离技术将读操作和写操作分别路由到不同的数据库实例中从而提高系统的性能。根据数据的特点分别选用不同类型的数据主体结构数据存入mysql中时序数据存入es中非参数化模型存入文本或oss中。
在安全设计中需要采用统一的非对称秘钥认证机制,用户访问和节点通信皆使用私人秘钥本地解密远程密文进行认证,例如身份验证、访问控制、节点接入、数据加密等,保障系统的安全性。
如下图所示,为云平台主体结构,通用数字孪生平台的架构设计需要考虑多方面因素,通过采用现代化的架构技术和安全机制,实现高性能、可伸缩、可用和安全的系统。
\begin{figure}[h!]
\centering
\includegraphics[width=0.8\textwidth]{figure/f8.png}
\caption{平台主体结构}
\label{fig-f8}
\end{figure}
\section{功能设计}
在设计该平台功能时,重点考虑其通用性和扩展性后,将平台功能点分为基础功能和拓展功能,拓展功能以本文提供的数据通信方案和规则模型方案为基础构建,由基础功能和额外编写的逻辑规则拓展而成,用户也可以此设计拓展功能。
\begin{enumerate}
\item 数字孪生建模功能:提供用户友好的建模工具,支持各种模型类型和复杂性。用户可以通过可视化界面创建、编辑和删除模型。同时,平台应该提供模型验证、合法性检查、版本管理等功能。
\item 规则编写:提供多种方式的规则输入体系,使得用户方便的去构建场景和节点交互逻辑和内置规则。
\item 数据采集和集成功能数字孪生平台需要支持各种数据源的集成包括传感器、设备、网络、云服务等等提供丰富的API和数据连接功能以便数据源的快速接入和管理。
\item 数据分析和可视化功能:数字孪生平台需要提供数据分析和可视化工具,以便用户对数字孪生系统中的数据进行分析和探索。平台提供可视化工具和分析功能,支持数据探索、数据可视化和可视化交互等等。
\item 仿真和预测功能:数字孪生平台需要支持仿真和预测功能,以便用户可以基于数字孪生系统中的数据进行模拟和预测分析。平台应该提供各种仿真和预测工具,包括数据建模、算法开发和模型训练等等。
\item 安全性和可扩展性:数字孪生平台需要具备高可靠性和可扩展性。平台应该提供安全保障机制,包括数据安全、身份认证和访问控制等等。同时,平台应该具备可扩展性,以便用户可以轻松地扩展数字孪生系统的功能和规模。
\item API和开放平台数字孪生平台需要提供API和开放平台以便用户可以轻松地开发自己的应用程序和服务。平台应该提供完整的API文档和示例代码同时支持第三方开发者的集成和扩展。
\end{enumerate}
\section{数据库设计}
在设计该平台数据库时,需要考虑以下几个方面:
\begin{enumerate}
\item 数据库的范围和目的:数字孪生平台通常需要处理大量的数据,包括实时数据、历史数据、静态数据等。因此,需要确定数据库的范围和目的,包括存储数据的类型、数据的来源和流向、数据的格式等。
\item 数据库的结构和模式:为了支持数字孪生平台的多样化需求,数据库需要具有灵活的结构和模式。可以采用关系型数据库或非关系型数据库,或者二者结合使用。同时,需要确定数据库的表结构、字段类型、主键、外键等。
\item 数据库的安全性和可靠性:数字孪生平台通常涉及到重要的实时数据和设备信息,因此需要确保数据库的安全性和可靠性。可以采用多重备份、加密、权限控制等方式来保证数据的完整性和保密性。
\item 数据库的性能和扩展性:数字孪生平台需要支持高效的数据处理和分析,因此需要考虑数据库的性能和扩展性。采用分布式数据库、内存数据库等技术来提高性能,并采用分区、分片等方式来实现扩展性。
\item 数据库的数据采集和清洗:数字孪生平台需要从多个来源获取数据,并进行数据清洗和处理。因此需要设计适合的数据采集和清洗模块,确保数据的准确性和一致性。
\end{enumerate}
综上所述,数字孪生平台的数据库设计需要考虑多个方面,包括数据库的范围和目的、结构和模式、安全性和可靠性、性能和扩展性以及数据采集和清洗等。在设计过程中需要综合考虑各个方面的需求,灵活应用不同的技术和方法,确保数字孪生平台的高效、安全、可靠运行。