一种基于微服务架构实现产品可视化显示的方法及***
技术领域
本发明涉及图形展示技术领域,尤其涉及一种基于微服务架构实现产品可视化显示的方法及***。
背景技术
微服务架构是一项在云中部署应用和服务的新技术,可以在“自己的程序”中运行,并通过“轻量级设备与HTTP型API进行沟通”。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有***中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程的架构。
产品样机模型是将工业产品的样机模型分为产品、特征、行为、状态(起)和状态(止)五个部分,其中产品是指工业产品本身。特征是指某种状态下工业产品的相关属性,比如形状,材料,环境和***等。行为是指产品本身或者外部针对工业产品的相关动作,比如分析,组装、旋转等。状态是指工业产品在某种特定环境下表现出来的形态。状态参数和行为关系具体如下图1所示:
图1中产品直接与特征和行为产生交互,特征反映产品的实时的某种属性,行为是直接作用在产品上。产品的起始状态从产品的特征中获取能够反映产品的初始状态的值。产品经过行为的作用,产品的状态发生改变,形成终止状态。把产生终止状态改变的参数相应的值返回给特征的。
引擎是借用机器工业的同名术语,表明在整个***中的核心地位。也可以称为“支持应用底层函数库”。目前图形引擎中比较出色的朋OGRE、OpenGVS、Vtree、OSG等。而一个封装了硬件操作和图形算法、简单易用、功能丰富的三维图形开发环境,就可以称为三维图形引擎。
现有技术中的工业软件在网络化模式下遇到的产品功能展示困难,无法根据需要展示相应的功能,扩展性低。
因此现有技术还有待于进一步发展。
发明内容
针对上述技术问题,本发明实施例提供了一种基于微服务架构实现产品可视化显示的方法及***,能够解决现有工业软件在网络化模式下遇到的产品功能展示困难,无法根据需要展示相应的功能,扩展性低的技术问题。
本发明实施例的第一方面提供一种基于微服务架构实现产品可视化显示的方法,包括:
获取产品的产品特征,根据产品特征获取产品特征的业务流程;
根据产品特征的业务流程进行微服务架构;
根据微服务架构调用产品的样机模型服务,根据产品的样机模型服务将样机模型数据导入三维显示引擎;
根据样机模型数据在三维显示引擎绘制基础特征并显示。
可选地,所述根据样机模型数据在三维显示引擎绘制基础特征并显示后,还包括:
检测到样机模型数据发生变化时,将样机模型数据的位移或者状态的变化过程进行动态效果展示。
可选地,所述根据产品特征的业务流程进行微服务架构,包括:
对业务流程中的公共服务进行提取,建立独立输入与输出的API服务;
获取业务流程中的业务服务,对产品业务服务进行定义;
根据定义的产品业务服务设计数据模型,并在数据模型顶层的服务接口定义一组唯一的API;
获取产品的样机模型,将产品的样机模型在服务集群中中进行注册,生成产品的样机模型服务。
可选地,所述根据微服务架构调用产品的样机模型服务,根据产品的样机模型服务将样机模型数据导入三维显示引擎,包括:
根据微服务架构调用产品的样机模型服务,读取解析通用文件,构建模型数据的点集合、单元集合信息,构建完整的样机模型数据;
将产品的样机模型数据导入三维显示引擎。
可选地,所述根据样机模型数据在三维显示引擎绘制基础特征并显示,包括:
预先在服务集群中注册三维显示引擎的显示服务;
通过显示服务对样机模型数据进行解析,获取显示所需的渲染器和样机模型数据;
建立映射器映射样机模型数据生成映射数据,将映射数据转化为图形进行显示。
本发明实施例第二方面提供了一种基于微服务架构实现产品可视化显示的***,所述***包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现以下步骤:
根据产品特征的业务流程进行微服务架构;
根据微服务架构调用产品的样机模型服务,根据产品的样机模型服务将样机模型数据导入三维显示引擎;
根据样机模型数据在三维显示引擎绘制基础特征并显示。
可选地,所述计算机程序被所述处理器执行时还实现以下步骤:
检测到样机模型数据发生变化时,将样机模型数据的位移或者状态的变化过程进行动态效果展示。
可选地,所述计算机程序被所述处理器执行时还实现以下步骤:
对业务流程中的公共服务进行提取,建立独立输入与输出的API服务;
获取业务流程中的业务服务,对产品业务服务进行定义;
根据定义的产品业务服务设计数据模型,并在数据模型顶层的服务接口定义一组唯一的API;
获取产品的样机模型,将产品的样机模型在服务集群中中进行注册,生成产品的样机模型服务。
本发明实施例第三方面提供了一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的基于微服务架构实现产品可视化显示的方法。
本发明实施例提供的技术方案中,获取产品的产品特征,根据产品特征获取产品特征的业务流程;根据产品特征的业务流程进行微服务架构;根据微服务架构调用产品的样机模型服务,根据产品的样机模型服务将样机模型数据导入三维显示引擎;根据样机模型数据在三维显示引擎绘制基础特征并显示。因此相对于现有技术,本发明实施例可简单快捷对产品进行扩展展示,解决了新产品的展示和分析问题,大大提高工程师工作效率。
附图说明
图1为现有技术中的的样机模型的示意图;
图2为本发明实施例中一种基于微服务架构实现产品可视化显示的方法的一实施例的流程示意图;
图3为本发明实施例中一种基于微服务架构实现产品可视化显示的方法的一实施例的微服务框架示意图;
图4为本发明实施例中一种基于微服务架构实现产品可视化显示的方法的一实施例的样机模型数据格式文件示意图;
图5为本发明实施例中一种基于微服务架构实现产品可视化显示的方法的一实施例的可展开支撑架构的参数化设计的示意图;
图6为本发明实施例中一种基于微服务架构实现产品可视化显示的方法的一实施例的可展开支撑架构的臂杆特征示意图;
图7为本发明实施例中一种基于微服务架构实现产品可视化显示的方法的一实施例的可展开支撑架构的关节特征示意图;
图8为本发明实施例中一种基于微服务架构实现产品可视化显示的***的另一实施例的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下结合附图对本发明实施例进行详细的描述。
请参阅图2,图2为本发明实施例中一种基于微服务架构实现产品可视化显示的方法的一个实施例的流程示意图。如图2所示,包括:
步骤S100、获取产品的产品特征,根据产品特征获取产品特征的业务流程;
步骤S200、根据产品特征的业务流程进行微服务架构;
步骤S300、根据微服务架构调用产品的样机模型服务,根据产品的样机模型服务将样机模型数据导入三维显示引擎;
步骤S400、根据样机模型数据在三维显示引擎绘制基础特征并显示。
具体地,首先产品业务流程梳理,梳理产品的产品特征,产品特征包含产品的几何信息、属性、子部件和类型信息等,理清楚产品显示的特征流程。说明业务流程中所涉及状态的变化过程。
根据产品业务流程构建微服务架构。
调用样机模型服务,样机模型数据导入三维显示内,调用显示服务,构建显示窗体。
三维显示样机模型特征数据,使用样机模型数据在三维显示窗口中绘制基础特征显示,通过获取样机数据的点数据来绘制点,通过获取单元类型和单元包含的点来绘制显示对应类型的单元。展示图形的初始或者默认状态。
本发明实施例针对目前工业软件在网络化模式下遇到的产品功能展示困难,扩展性低的问题,提出了一种基于微服务框架实现产品的可视化显示的方法,通过该方法可以解决新产品的展示和分析问题,大大提高工程师工作效率。通过微服务框架模式,支持独立产品的服务化,通过产品服务能快速展示产品的行为特征,对产品数据的分析。通过调用三维显示对任意产品进行展示。按照三维显示引擎要求,对样机模型的产品层级和特征内容进行定义,给出空间位置节点坐标特征,线单元连接节点特征,面单元连接节点特征,以及变形特征,实现模型的展示和动画生成。
进一步地,显示时是按照三维显示引擎要求,对样机模型的产品层级和特征内容进行定义,给出空间位置节点坐标特征,线单元连接节点特征,面单元连接节点特征,以及变形特征,实现模型的展示和动画生成。
进一步地,根据样机模型数据在三维显示引擎绘制基础特征并显示后,还包括:
检测到样机模型数据发生变化时,将样机模型数据的位移或者状态的变化过程进行动态效果展示。
具体地,动画效果展示,对模型特征数据的位移或者状态特征变化进行动态效果展示。能更加形象具体的显示变化过程状态。
样机模型数据发生变化时,通过循环执行获取样机模型数据,并在三维引擎绘制基础特征,从而实现在三维显示窗口显示当前状态和变化状态的变换过程技术动画展示过程,演示点、线、面和体的位置变换、特征、状态改变过程。动画过程为随着时间的进行,样机模型数据在一定范围内进行变化,当变化达到范围边界时,动画播放完成。
进一步地,根据产品特征的业务流程进行微服务架构,包括:
对业务流程中的公共服务进行提取,建立独立输入与输出的API服务;
获取业务流程中的业务服务,对产品业务服务进行定义;
根据定义的产品业务服务设计数据模型,并在数据模型顶层的服务接口定义一组唯一的API;
获取产品的样机模型,将产品的样机模型在服务集群中中进行注册,生成产品的样机模型服务。
具体地,公共服务提取,剥离公共服务,公共服务是指与业务不太相关的部分。建立具有独立的输入与输出的API服务。
产品业务服务定义,当公共服务提取完毕后,业务流程中剩余的部分就是业务服务,确保服务尽量不和其它服务产生依赖关系。
设计数据模型,定义底层数据模型既是样机模型数据,样机模型数据包含点的坐标系(x,y,z),线单元、面单元和体单元包含的有序点及单元的类型及特征信息。
定义服务接口,在底层的数据模型设计完成后,在顶层的服务接口上定义一组职责单一、全局唯一、便于识别的一组API。
样机模型服务注册到服务框架,将完成发布的样机模型服务打包注册到框架中,注册服务以便其它服务发现和访问。
通过服务框架查找调用产品服务。
如图3所示,微服务架构包含客户端、服务网关、样机模型服务、三维显示服务、服务注册中心和服务配置中心。客户端也叫做用户端,是指与服务器相对应,为客户提供本地服务的程;服务网关用来保护、增强和控制对于服务的访问;服务注册和配置中心是管理***内所有的服务地址,启动的服务会注册到注册中心,查询可用服务地址。
我们通过对领域模型的研究,将领域模型划分为物理模型、机理模型和样机模型。物理模型是描述物理对象的组织结构,根据对象的具体组织结构,分为产品、产品的行为,产品的特征以及产品的各种状态。机理模型是描述物理对象的内在机理,根据对象、生产过程的内部机制或者物质流的传递机理建立起来的精确数学模型。是对研究对象的数学抽象表述,根据对象具体分为单元、特性、载荷,分析和结果。其优点是参数具有非常明确的物理意义,易于调整,适应性强。样机模型最终将物理模型和机理模型组织在一起,建立物理模型和机理模型的关联关系,并与计算机模型进行映射。
样机模型服务是具有数据结构而没有数据的结构模型,其中用Grids来记录模型中所有的点数据;用Elements来记录模型所有的单元数据,具有参数可视化界面的服务,参数可视化界面可以选择通用模型文件或者数据特征参数信息的视图界面。
模型数据是给样机模型的特征、状态和行为准备的必要数据,数据主要来源通用数据文件和参数化建模。
将样机模型服务注册到服务集群中,实现样机模型服务的注册与发现,使用容器docker来实现集群,使用服务注册中心consul来实现服务的注册和发现。
进一步地,根据微服务架构调用产品的样机模型服务,根据产品的样机模型服务将样机模型数据导入三维显示引擎,包括:
根据微服务架构调用产品的样机模型服务,读取解析通用文件,构建模型数据的点集合、单元集合信息,构建完整的样机模型数据;
将产品的样机模型数据导入三维显示引擎。
具体实施时样机模型通过读取解析模型通用文件,文件格式如图4所示,文件来源于其它软件生成或者按照该格式编写的文件,构建模型数据的点集合、单元集合、单元包含节点信息和特征等信息,将所有的点的信息记录到Grids内,将单元信息记录到Elements内,构建完整的数据模型。
样机模型通过参数化建模,通过输入模型需要的特征信息来构建数据的点集Grids、单元集合Elements、单元包含节点信息AssociationPoints和特征Features等信息,将所有的点的信息记录到Dictionary集合Grids内,将单元信息记录到Elements内。点的信息包含有点的坐标(x,y,z)、点的编号和点的名称;单元集合是记录所有单元的Dictionary集合,单元包含的节点是节点的编号,单元通过包含的节点编号从节点集合中获取到对应的点。
数据结构Grids和Elements采用C#中的字典Dictionary结构来存储从数据文件(数据文件是样机模型服务和显示模块服务交互的数据文件)中读入的模型相关数据,创建结构体变量,作为Dictionary结构的元素,获取需要的模型信息。
数据模块:根据样机模型数据生成模型文本数据模块,作为三维显示服务的数据显示文件。
样机模型数据生成数据格式文件的具体方式如图4所示,
通过Grids获取点的数量count,将POINT$count float写入文件;
从样机模型数据Grids中遍历整个点集,按照点的坐标x1,y1,z1;x2,y2,z2;…xn,yn,zn(单行数据个数为3的倍数)的格式写入文件点的数据集合;
通过Elements获取单元的数量count,遍历Elements计算总数据数量array(总数据数量=所有单元包含的点的个数总和+单元数量),将POLYGONS$count$array写入文件,POLYGONS是多边形格式标签,$count是单元数量(一行为一个单元,单元数量即是数据的行数),$array是总数据量(总数据数量=所有单元包含的点的个数总和+单元数量),带$表示宏标签,用来表示动态的具体数值;
从样机模型数据Elements中遍历整个单元集和,单元信息按照单元类型和单元包含的点的顺序写入文件单元类型集合。
写入CELL_DATA单元数量和POINT_DATA点数量。
按照以上的格式自动完成一个格式文本文件的生成,作为显示模块的数据源。
进一步地,根据样机模型数据在三维显示引擎绘制基础特征并显示,包括:
预先在服务集群中注册三维显示引擎的显示服务;
通过显示服务对样机模型数据进行解析,获取显示所需的渲染器和样机模型数据;
建立映射器映射样机模型数据生成映射数据,将映射数据转化为图形进行显示。
具体实施时,三维显示引擎通过建立渲染引擎管道,通过显示服务内的文件解析方法解析得到显示所需的渲染器和模型数据,建立映射器映射模型数据,将映射数据转化为图形显示。解析文件如图4所示,将POINTS下的数据Reader解析为点数据,其中每行的每三个数据是一个点的坐标(x,y,z),根据点的坐标系创建点Grid,点的名称为所在个数,比如第一行的前三个数据表示名称为1的点(x1,y1,z1),后面三个数表示名称为2的点(x2,y2,z2),点的编号是根据GUID自动生成的为一标识,解析的点存储到点集合中;POLYGONS下记录的数据为单元信息,其中每一行表示一个单元,每一行的第一个数据表示该单元包含的点的个数,后面的数据表示点的名称,通过点的名称可以在前面的点集合中获取到点的编号,解析的单元存储到单元集合中,将解析后的文件数据写入聚合数据PolyDataReader中,然后创建角色Actor、创建映射器Mapper、创建渲染器Renderer,将聚合数据PolyDataReader赋值给映射器Mapper,将映射器Mapper赋值给角色Actor,最后将角色Actor添加到渲染器Renderer中进行绘制显示。在绘制对象窗口可以对模型进行三维示,同时可以对模型的特征、行为和状态进行全面的展示。
将三维显示服务注册到服务集群中,实现显示三维显示服务的注册与发现,做到数据源和数据显示分离,使用容器docker来实现集群,使用服务注册中心consul来实现服务的注册和发现。
三维显示服务包括数据模块和三维显示模块,三维显示模块包括静态显示和动画显示。三维静态显示,样机模型数据文本文件生成完成后,调用三维显示服务的显示接口,执行三维显示模块的图形显示。
样机模型和三维显示的交互,既是样机模型数据生成模型文本数据,然后将文本数据传递给三维显示服务,三维显示模块通过解析文本数据来显示图形。
本发明实施例还提供了一种基于微服务架构实现产品可视化显示的方法的具体应用实施例,如图5所示,
在可展开支撑架构型参数化设计中,需要对样机模型支撑架构在三维显示中进行显示。单元对象主要包括臂杆和关节如图5所示。其中臂杆单元的特征数据包含A端坐标和B端坐标两个端点,圆筒内径和壁厚如图6所示;关节单元的特征数据包含关节点坐标和A端和B端的局部坐标系如图7所示。对创建的初始单元对象进行显示,并且通过装配行为装配结构及单元所需要的材料铺层等信息,可以将多臂杆和关节装配为新的状态,具体操作是首先创建2~N个臂杆,然后创建1~N个关节,接着装配链接需要的臂杆和关节,两个臂杆和一个关节装配具体情况如下:
情况1:臂杆1的A端链接关节1的A端,关节1的B端链接臂杆2的A端;
情况2:臂杆1的A端链接关节1的A端,关节1的B端链接臂杆2的B端;
情况3:臂杆1的A端链接关节1的B端,关节1的A端链接臂杆2的A端;
情况4:臂杆1的A端链接关节1的B端,关节1的A端链接臂杆2的B端;
情况5:臂杆1的B端链接关节1的A端,关节1的B端链接臂杆2的A端;
情况6:臂杆1的B端链接关节1的A端,关节1的B端链接臂杆2的B端;
情况7:臂杆1的B端链接关节1的B端,关节1的A端链接臂杆2的A端;
情况8:臂杆1的B端链接关节1的B端,关节1的A端链接臂杆2的B端;
从而达到装配为整个支撑架构的目的。这样样机模型的特征模型数据就构建完成了,完成样机模型数据后,按照如图4所示的文件格式生成文本文件,调用微服务框架中的三维显示服务,将样机模型数据格式文件导入三维显示服务中,在三维显示服务内部通过样机模型数据臂杆的类型和特征数据及包含的点坐标数据,绘制臂杆显示,同样的绘制出关机的图形,然后通过装配的信息数据,在显示服务中转换图形位置绘制出整个支撑架构图形,通过对装配后的状态进行分析,可以模拟臂杆关节的活动运动状态,通过多层状态组合运行,可以查看运动状态动画。
由以上方法实施例可知,本发明实施例对样机模型的产品层级和特征内容进行定义,给出空间位置节点坐标特征,线单元连接节点特征,面单元连接节点特征,以及变形特征,实现模型的展示和动画生成。
需要说明的是,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施例的描述可以理解,不同实施例中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。
上面对本发明实施例中的基于微服务架构实现产品可视化显示的方法进行了描述,下面对本发明实施例中的基于微服务架构实现产品可视化显示的***进行描述,请参阅图8,图8是本发明实施例中一种基于微服务架构实现产品可视化显示的***的另一实施例的硬件结构示意图,如图8所示,***10包括:存储器101、处理器102及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器101执行时实现以下步骤:
获取产品的产品特征,根据产品特征获取产品特征的业务流程;
根据产品特征的业务流程进行微服务架构;
根据微服务架构调用产品的样机模型服务,根据产品的样机模型服务将样机模型数据导入三维显示引擎;
根据样机模型数据在三维显示引擎绘制基础特征并显示。
具体的实施步骤与方法实施例相同,此处不再赘述。
可选地,计算机程序被处理器101执行时还实现以下步骤:
检测到样机模型数据发生变化时,将样机模型数据的位移或者状态的变化过程进行动态效果展示。
具体的实施步骤与方法实施例相同,此处不再赘述。
可选地,计算机程序被处理器101执行时还实现以下步骤:
对业务流程中的公共服务进行提取,建立独立输入与输出的API服务;
获取业务流程中的业务服务,对产品业务服务进行定义;
根据定义的产品业务服务设计数据模型,并在数据模型顶层的服务接口定义一组唯一的API;
获取产品的样机模型,将产品的样机模型在服务集群中中进行注册,生成产品的样机模型服务。
具体的实施步骤与方法实施例相同,此处不再赘述。
可选地,计算机程序被处理器101执行时还实现以下步骤:
根据微服务架构调用产品的样机模型服务,读取解析通用文件,构建模型数据的点集合、单元集合信息,构建完整的样机模型数据;
将产品的样机模型数据导入三维显示引擎。
具体的实施步骤与方法实施例相同,此处不再赘述。
本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图2中的方法步骤S100至步骤S400。
作为示例,非易失性存储介质能够包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦ROM(EEPROM)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(RAM)。通过说明并非限制,RAM可以以诸如同步RAM(SRAM)、动态RAM、(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、Synchlink DRAM(SLDRAM)以及直接Rambus(兰巴斯)RAM(DRRAM)之类的许多形式得到。本文中所描述的操作环境的所公开的存储器组件或存储器旨在包括这些和/或任何其他适合类型的存储器中的一个或多个。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。