CN116186022A - 表单处理方法、装置、分布式表单系统和计算机存储介质 - Google Patents
表单处理方法、装置、分布式表单系统和计算机存储介质 Download PDFInfo
- Publication number
- CN116186022A CN116186022A CN202111423815.7A CN202111423815A CN116186022A CN 116186022 A CN116186022 A CN 116186022A CN 202111423815 A CN202111423815 A CN 202111423815A CN 116186022 A CN116186022 A CN 116186022A
- Authority
- CN
- China
- Prior art keywords
- layer
- data
- service
- distributed
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种表单处理方法、装置、分布式表单系统和计算机存储介质。该表单处理方法包括:通过展现层接收表单处理指令;通过展现层将基于表单处理指令生成的表单存储文件发送至应用层;通过应用层获取表单存储文件对应的表单服务,并将表单存储文件和表单服务发送至领域层;通过领域层对表单服务进行业务逻辑处理以及对表单存储文件进行解析处理,得到表单数据,并将表单数据发送至基础设施层;通过基础设施层将表单数据持久化,并根据表单数据的表单标识查询缓存是否存在与表单标识对应的表单配置信息,若存在则更新缓存中的表单数据,若不存在则将表单数据写入到缓存中。本申请的技术方案可以高效可靠的处理表单数据。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种表单处理方法、装置、分布式表单系统和计算机存储介质。
背景技术
在现代社会的各行业应用中,常常使用业务审批流程,不同行业适用的流程一般大不相同。为解决繁杂多变的业务审批流程、减轻研发人员工作量的工作流应运而生。而业务审批流程中相关的定义信息以及真实的业务数据则由表单引擎进行处理。
随着时代发展,单一的表单服务已经不能满足现有需求,复杂的业务逻辑对于分布式表单服务的需求愈发强烈,基于业务需求开发了分布式表单服务,请求是分流的,对数据的操作是能读写分离的,同时能屏蔽许多复杂需要自己编写的底层服务,分布式表单服务可以降低人力开发维护的成本和提高应用交付的效率。
本申请的发明人在研究和实践分布式表单服务的过程中发现,相关技术无法高效实现表单服务。
发明内容
本申请实施例提供了一种表单处理方法、装置、分布式表单系统和计算机存储介质,以对分布式表单系统中的表单数据进行高效可靠的处理。
本申请实施例采用下述技术方案:
第一方面,本申请实施例提供一种表单处理方法,应用于分布式表单系统,所述分布式表单系统采用领域驱动设计DDD的微服务架构,其中微服务架构包括展现层、应用层、领域层和基础设施层;所述方法包括:通过所述展现层接收表单处理指令;通过所述展现层将基于所述表单处理指令生成的表单存储文件发送至应用层;通过所述应用层获取所述表单存储文件对应的表单服务,并将所述表单存储文件和所述表单服务发送至领域层;通过所述领域层对所述表单服务进行业务逻辑处理以及对所述表单存储文件进行解析处理,得到表单数据,并将所述表单数据发送至基础设施层;通过所述基础设施层将所述表单数据持久化到数据库中,并根据所述表单数据的表单标识查询分布式表单系统中的缓存是否存在与所述表单标识对应的表单配置信息,若存在,则更新所述缓存中的表单数据,若不存在,则将所述表单数据写入到所述缓存中。
第二方面,本申请实施例还提供一种表单处理装置,应用于分布式表单系统,所述分布式表单系统采用领域驱动设计DDD的微服务架构,其中微服务架构包括展现层、应用层、领域层和基础设施层;所述表单处理装置包括:第一处理单元,用于通过所述展现层接收表单处理指令,将基于所述表单处理指令生成的表单存储文件发送至应用层;第二处理单元,用于通过所述应用层获取表单存储文件对应的表单服务,将所述表单存储文件和所述表单服务发送至领域层;第三处理单元,用于通过领域层对所述表单服务进行业务逻辑处理以及对所述表单存储文件进行解析处理,得到表单数据,通过所述领域层将所述表单数据发送至基础设施层;第四处理单元,用于通过所述基础设施层将所述表单数据持久化到数据库中,并根据所述表单数据的表单标识查询分布式表单系统中的缓存是否存在与所述表单标识对应的表单配置信息,若存在,则更新所述缓存中的表单数据,若不存在,则将所述表单数据写入到所述缓存中。
第三方面,本申请实施例还提供一种分布式表单系统,采用领域驱动设计DDD的微服务架构,其中微服务架构包括展现层、应用层、领域层和基础设施层;所述分布式表单系统包括:
处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行上述任一实施例描述的表单处理方法。
第四方面,本申请实施例还提供一种计算机存储介质,计算机存储介质存储一个或多个程序,一个或多个程序当被包括多个应用程序的分布式表单系统执行时,使得分布式表单系统执行上述任一实施例描述的表单处理方法。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
在分布式表单系统中,利用预先划分好的各个模型层级对表单数据进行相应流程的处理,提高对表单数据的处理效率和处理可靠性,并在将表单数据持久化到数据库之后,还基于缓存中是否存在于表单对应的表单配置项来对缓存中的表单数据进行相应的处理,保证表单数据的最终一致性,进一步提高表单数据的处理可靠性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一个实施例中示出的一种表单处理方法的流程示意图;
图2为本申请一个实施例中示出的一种分布式多点接入表单服务的示意图;
图3为本申请一个实施例中示出的采用DDD的微服务架构的表单发布流程图;
图4为本申请一个实施例中示出的表单数据发布-订阅示意图;
图5为本申请一个实施例中示出的一种表单处理装置的结构示意图;
图6为本申请一个实施例中示出的一种分布式表单系统的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
本申请实施例提供一种表单处理方法,以高效可靠的对表单数据进行处理。本申请实施例的表单处理方法应用于分布式表单系统,所述分布式表单系统采用DDD(DomainDriven Design,领域驱动设计)的微服务架构,其中微服务架构包括展现层(UserInterface)、应用层(Application Layer)、领域层(Domain Layer)和基础设施层(Infrastructure Layer)。
本实施例中基于DDD对微服务进行层级划分,划分出多个相对较小的模型层级,便于开发和调试,能够有效避免由于微服务划界不明确而导致的效率低下和微服务处理不准确的问题,能够有效提高对用户请求的处理效率和处理可靠性;本实施例中各个模型层级相对独立,每个服务都可以单独开发单独部署,有效提高对用户请求处理和响应效率。
图1为本申请一个实施例中示出的一种表单处理方法的流程示意图,如图1所示,表单处理方法至少包括下述步骤S110-步骤S150:
步骤S110,通过展现层接收表单处理指令。
步骤S120,通过所述展现层将基于表单处理指令生成的表单存储文件发送至应用层。
本实施例中展现层用于向用户展现信息,以及获取用户行为并解析;应用层没有任何的业务逻辑代码,用于调用表单引擎接口对展现层发送的请求与数据发送至相应的领域层进行业务逻辑处理。
在需要对表单数据进行处理时,可以通过展现层接收表单处理指令,所述表单处理指令是指对表单进行设计,这里表单设计采用图形化页面的方式,利用展现层提供可视化的Web表单构建器,该Web表单构建器包括布局组件、基础字段和高级字段;布局组件是指设置表单结构布局的组件,包括Tabs布局、表单块和行;基础字段是指数据结构简单并最为常用的表单字段,例如包括文本框、文本域、数字框、下拉框、单选框、复选框、时间选择框等;高级字段是指数据结构复杂并可以实现复杂逻辑的表单字段,包括富文本、下拉树、级联选择器、选人组件、动态表格、自定义等,其中自定义可以根据表单需求,自行嵌入格式及样式特殊的字段。
根据使用的布局组件、基础字段和/或高级字段等表单组件,以及各个组件间的关联关系生成JSON结构的表单存储文件,在生成表单存储文件之后,向应用层的表单服务发起请求,获取相应的数据信息。这里展现层和应用层是通过JWT(JSON WEB TOKEN,暂无明确的中文译文,其是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准)进行用户认证。
步骤S130,通过应用层获取表单存储文件对应的表单服务,并将表单存储文件和表单服务发送至领域层。
步骤S140,通过所述领域层对表单服务进行业务逻辑处理以及对表单存储文件进行解析处理,得到表单数据,并将表单数据发送至基础设施层。
步骤S150,通过基础设施层将所述表单数据持久化到数据库中,并根据表单数据的表单标识查询分布式表单系统中的缓存是否存在,与表单标识对应的表单配置信息,若存在则更新缓存中的表单数据,若不存在,则将表单数据写入到缓存中。
领域层包含领域的信息,是业务处理的核心;基础设施层为其他层提供底层依赖操作,包括持久化数据、事件驱动等。
如图2所示,领域层在被应用层调用后,由领域层对表单存储文件进行解析。文本框、下拉框、时间框、选人组件、自定义组件等在JSON文件中都有各自的类型标识,领域层根据不同的类型标识判断各个组件类型,实现对表单存储文件的解析;解析完成后,由基础设施层将表单数据中包含的关系型数据写入关系型主数据库中,并同步到关系型从数据库中,然后再将解析的表单数据写入非关系型数据库中。这里关系型数据库表包括但不局限于SQL数据库,非关系型数据库包括但不局限于MongoDB数据库。
在完成表单数据的持久化处理后,判断缓存中是否存在于表单数据对应的表单配置信息,如果存在,则对缓存中的表单数据进行更新,如果不存在,则将表单数据添加到缓存中,这样在使用表单数据时,可以先从缓存数据中查询,若缓存中不存在所需表单数据,再从数据库中查询,保证分布式表单数据的最终一致性。
可见,图1所示的方法,在分布式表单系统中,利用预先划分好的各个模型层级对表单数据进行相应流程的处理,提高对表单数据的处理效率和处理可靠性,并在将表单数据持久化到数据库之后,还基于缓存中是否存在于表单对应的表单配置项来对缓存中的表单数据进行相应的处理,保证表单数据的最终一致性,进一步提高表单数据的处理可靠性。
在一些实施例中,分布式表单系统还采用Spring Cloud(Spring Cloud暂无明确的中文译文,其是一个基于Spring Boot实现的云应用开发工具)框架,相应的,通过应用层获取表单存储文件对应的表单服务,包括:由应用层调用服务查询接口,通过服务查询接口获取表单存储文件对应的表单服务;其中,服务查询接口是通过分布式多点接入策略和负载均衡策略,利用Spring Cloud Gateway从分布式的表单服务集群中确定表单存储文件对应的表单服务。
分布式多点接入策略能够充分利用已有资源,具有良好的可扩展性;负载均衡可扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
如图3所示,在通过展现层接收到的表单处理指令后,服务查询接口采用分布式多点接入策略和负载均衡策略,并利用Spring Cloud Gateway(Spring Cloud网关)从分布式多节点表单服务中查询出相应的表单服务,应用层即可通过调用该服务查询接口获得对应的表单服务,在获得表单存储文件对应的表单服务之后,即利用应用层将表单存储文件和获得的表单服务发送至领域层。
在一些实施例中,在由基础设施层将表单数据持久化到数据库中之后,图1所示的表单处理方法还包括:
由基础设施层对外发送携带表单标识的表单消息,基于事件发布-订阅总线对所述表单消息进行监听,在监听到所述表单消息时,由所述基础设施层根据所述表单标识查询所述缓存中是否存在与所述表单标识对应的表单配置信息。
如图4所示,本实施例中每个微服务都采用发布-订阅模式(Publish-Subscriber),以微服务A为例,在微服务A完成表单数据的持久化之后,对外发送表单消息(message),该消息是以事件Event的形式被发布出去,使用事件发布-订阅总线EventBus监听,当监听到事件时,根据表单标识检查缓存中有无对应的表单配置信息,有则根据该事件更新表单数据,无则根据该事件新增表单数据到缓存中,由此实现表单数据的最终一致性处理。
本实施例通过上述实施例实现了表单数据的保存,接下来通过下述实施例说明表单数据的使用。表单数据的使用主要包含两部分,第一是处理流程时,根据表单的定义信息录入对应的数据,保存成表单实例信息并更新实例信息。第二是渲染表单并展示到页面上。
针对第一部分,表单实例处理:
在一些实施例中,通过展现层接收表单实例化指令,获取表单实例化指令对应的表单结构数据和各表单组件的值的信息;由应用层根据表单结构数据和各表单组件的值的信息调用领域层,由领域层对表单结构数据进行数据解析,将解析出的数据类型和各表单组件的值的信息进行组装,得到表单实例数据;通过基础设施层调用与表单实例相关的领域对象,将表单实例数据持久化到数据库中。
具体而言,生产表单实例是用户指令向应用层的表单服务发起请求,请求包含表单定义的JSON结构数据,同时也请求包含每个组件应填写的值的信息;在获取到包含表单定义的JSON结构数据和各组件应填写的值的信息后,调用与表单实例相关的领域层,通过领域层来处理解析数据,根据JSON结构数据解析出的类型和各组件应填写的值的信息,进行数据组装。例如文本类型组件只需选择所填写的数据信息,下拉框等组件需要解析对应的数据字典,将代码和值对应起来组装。在所有数据处理完成后,调用基础设施层获取领域对象,将数据持久化到NoSQL非关系型数据库中,并对外发送message,以便于其他服务获取信息。
针对第二部分的第一方面,表单处理页面的渲染:
在一些实施例中,通过展现层接收表单处理页面渲染指令,并调用表单引擎接口;通过所述表单引擎接口从缓存中调用与表单处理页面的表单标识相对应的表单数据,根据所述表单数据渲染表单页面,实现智能化填报。
这里表单处理页面可以理解为待用户填报处理的表单页面,表单引擎可以根据表单处理页面的表单标识,从缓存中调用相对应的表单数据,通过解析匹配对应的数据字典等信息,将组合好的数据渲染成表单页面,实现智能化填报。
针对第二部分的第二方面,表单查看页面的渲染:
在一些实施例中,通过展现层接收表单查看页面渲染指令,获取所述表单查看页面对应的表单实例;由所述展现层向所述应用层的表单服务请求所述表单实例;通过所述应用层的所述表单服务调用所述基础设施层,由所述基础设施层获取所述表单实例的领域对象,从所述数据库中获得表单实例信息,并将所述表单实例信息返回所述展现层;通过所述展现层将所述表单实例信息渲染成表单页面。
这里表单查看页面可以理解为供用户查看的表单页面,在渲染表单查看页面时,该表单查看页面已经生成表单实例,因此可以根据该表单查看页面对应的表单实例,向应用层的表单服务查询表单实例的请求,该请求会直接调用基础设施层,通过基础设施层获取表单实例的领域对象,查询NoSQL非关系型数据库获取流程的表单实例数据,并对外发送message,便于其他服务获取信息。在获取到表单实例数据后返回给展现层,将JSON结构的数据渲染成较为直观的页面,方便用户查询。
综合上述,本申请实施例的表单处理方法将表单引擎与基于DDD的微服务架构相结合,实现了分布式表单引擎服务,通过分布式多点接入策略与负载均衡策略,快速响应业务需求,提高生产效率,综合利用服务器资源;以及通过表单服务,实现对不同流程提供动态表单数据,为不同流程提供个性化表单。本申请实施例的分布式表单引擎服务至少具有以下优点:
(1)增大系统容量。由于业务量越来越大,而要能应对越来越大的业务量,一台机器的性能已经无法满足了,多台机器才能应对大规模的应用场景,变成分布式架构的表单引擎可以处理大业务量。
(2)加强系统可用性。业务越来越关键,需要提高整个系统架构的可用性,这就意味着架构中不能存在单点故障,整个系统不能因为一台机器出故障而导致整体不可用。所以,需要通过分布式架构来冗余系统以消除单点故障,从而提高系统的可用性。
(3)系统重用的更高。通过严格、清晰的分层模式将系统模块化,便于系统的快速开发和部署。
本申请实施例还提供一种表单处理装置,用于实现如上任一实施例中的表单处理方法。本实施例的表单处理装置应用于分布式表单系统,所述分布式表单系统采用DDD的微服务架构,其中微服务架构包括展现层、应用层、领域层和基础设施层。
图5为本申请一个实施例中示出的一种表单处理装置的结构示意图,如图5所示,表单处理装置500包括:
第一处理单元510,用于通过展现层接收表单处理指令,将基于表单处理指令生成的表单存储文件发送至应用层;
第二处理单元520,用于通过应用层获取表单存储文件对应的表单服务,将表单存储文件和表单服务发送至领域层;
第三处理单元530,用于通过领域层对表单服务进行业务逻辑处理以及对表单存储文件进行解析处理,得到表单数据,并将表单数据发送至基础设施层;
第四处理单元540,用于通过基础设施层将表单数据持久化到数据库中,并根据表单数据的表单标识查询分布式表单系统中的缓存是否存在与表单标识对应的表单配置信息,若存在,则更新缓存中的表单数据,若不存在,则将表单数据写入到所述缓存中。
在一些实施例中,第四处理单元540,用于在通过基础设施层将表单数据持久化到数据库中之后,由基础设施层对外发送携带表单标识的表单消息;基于事件发布-订阅总线对所述表单消息进行监听,在监听到表单消息时,由基础设施层根据表单标识查询缓存中是否存在与表单标识对应的表单配置信息。
在一些实施例中,分布式表单系统还采用Spring Cloud框架,第二处理单元520,还用于通过所述应用层调用服务查询接口,通过所述服务查询接口获取表单存储文件对应的表单服务;其中,服务查询接口是通过分布式多点接入策略和负载均衡策略,利用SpringCloud Gateway从分布式的表单服务集群中确定出表单存储文件对应的表单服务。
在一些实施例中,第一处理单元510,用于通过展现层接收表单实例化指令,获取表单实例化指令对应的表单结构数据和各表单组件的值的信息;
第二处理单元520,用于由应用层根据表单结构数据和各表单组件的值的信息调用领域层;
第三处理单元530,用于由领域层对表单结构数据进行数据解析,将解析出的数据类型和各表单组件的值的信息进行组装,得到表单实例数据;
第四处理单元540,用于通过基础设施层调用与表单实例相关的领域对象,将表单实例数据持久化到数据库中。
在一些实施例中,第一处理单元510,用于通过展现层接收表单处理页面渲染指令,并调用表单引擎接口;通过表单引擎接口从缓存中调用与表单处理页面的表单标识相对应的表单数据,根据表单数据渲染表单页面,实现智能化填报。
在一些实施例中,第一处理单元510,用于通过展现层接收表单查看页面渲染指令,获取表单查看页面对应的表单实例,并向应用层的表单服务请求所述表单实例;
第二处理单元520,用于通过应用层的表单服务调用基础设施层;
第四处理单元540,用于由基础设施层获取表单实例的领域对象,从数据库中获得表单实例信息,并将表单实例信息返回展现层;
以及第一处理单元510,还用于通过展现层将表单实例信息渲染成表单页面。
能够理解,上述表单处理装置,能够实现前述实施例中提供的表单处理方法的各个步骤,关于表单处理方法的相关阐释均适用于表单处理装置,此处不再赘述。
图6是本申请的一个实施例分布式表单系统的结构示意图。本实施例的分布式表单系统采用DDD的微服务架构,其中微服务架构包括展现层、应用层、领域层和基础设施层。
参考图6,在硬件层面,该分布式表单系统包括处理器和存储器,可选地还包括内部总线、网络接口。其中,存储器可能包含内存,例如高速随机存取存储器(Random-AccessMemory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该分布式表单系统还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成表单处理装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
通过展现层接收表单处理指令;通过展现层将基于表单处理指令生成的表单存储文件发送至应用层;通过应用层获取表单存储文件对应的表单服务,并将表单存储文件和表单服务发送至领域层;通过领域层对表单服务进行业务逻辑处理以及对表单存储文件进行解析处理,得到表单数据,将表单数据发送至基础设施层;通过基础设施层将表单数据持久化到数据库中,并根据表单数据的表单标识查询分布式表单系统中的缓存是否存在与表单标识对应的表单配置信息,若存在则更新缓存中的表单数据,若不存在则将表单数据写入到缓存中。
上述如本申请图1所示实施例揭示的表单处理装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该分布式表单系统还可执行图1中表单处理装置执行的方法,并实现表单处理装置在图5所示实施例的功能,本申请实施例在此不再赘述。
本申请实施例还提出了一种计算机存储介质,该计算机存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的分布式表单系统执行时,能够使该分布式表单系统执行图1所示实施例中表单处理装置执行的方法,并具体用于执行:
通过展现层接收表单处理指令;通过展现层将基于表单处理指令生成的表单存储文件发送至应用层;通过应用层获取表单存储文件对应的表单服务,并将表单存储文件和表单服务发送至领域层;通过领域层对表单服务进行业务逻辑处理以及对表单存储文件进行解析处理,得到表单数据,将表单数据发送至基础设施层;通过基础设施层将表单数据持久化到数据库中,并根据表单数据的表单标识查询分布式表单系统中的缓存是否存在与表单标识对应的表单配置信息,若存在则更新缓存中的表单数据,若不存在则将表单数据写入到缓存中。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种表单处理方法,其特征在于,应用于分布式表单系统,所述分布式表单系统采用领域驱动设计DDD的微服务架构,其中所述微服务架构包括展现层、应用层、领域层和基础设施层;所述方法包括:
通过所述展现层接收表单处理指令;
通过所述展现层将基于所述表单处理指令生成的表单存储文件发送至所述应用层;
通过所述应用层获取所述表单存储文件对应的表单服务,并将所述表单存储文件和所述表单服务发送至所述领域层;
通过所述领域层对所述表单服务进行业务逻辑处理以及对所述表单存储文件进行解析处理,得到表单数据,并将所述表单数据发送至所述基础设施层;
通过所述基础设施层将所述表单数据持久化到数据库中,并根据所述表单数据的表单标识查询所述分布式表单系统中的缓存是否存在与所述表单标识对应的表单配置信息,若存在,则更新所述缓存中的表单数据,若不存在,则将所述表单数据写入到所述缓存中。
2.如权利要求1所述的方法,其特征在于,在通过所述基础设施层将所述表单数据持久化到数据库中之后,所述方法还包括:
通过所述基础设施层对外发送携带所述表单标识的表单消息;
基于事件发布-订阅总线对所述表单消息进行监听,在监听到所述表单消息时,由所述基础设施层根据所述表单标识查询所述缓存中是否存在与所述表单标识对应的表单配置信息。
3.如权利要求1所述的方法,其特征在于,所述分布式表单系统还采用Spring Cloud框架,通过所述应用层获取表单存储文件对应的表单服务,包括:
由所述应用层调用服务查询接口,通过所述服务查询接口获取表单存储文件对应的表单服务;其中,服务查询接口是通过分布式多点接入策略和负载均衡策略,利用SpringCloud Gateway从分布式的表单服务集群中确定出表单存储文件对应的表单服务。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述展现层接收表单实例化指令,获取表单实例化指令对应的表单结构数据和各表单组件的值的信息;
由所述应用层根据所述表单结构数据和各表单组件的值的信息调用所述领域层,由所述领域层对所述表单结构数据进行数据解析,将解析出的数据类型和所述各表单组件的值的信息进行组装,得到表单实例数据;
通过所述基础设施层调用与表单实例相关的领域对象,将表单实例数据持久化到数据库中。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述展现层接收表单处理页面渲染指令,并调用表单引擎接口;
通过所述表单引擎接口从所述缓存中调用与表单处理页面的表单标识相对应的表单数据,根据所述表单数据渲染表单页面,实现智能化填报。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述展现层接收表单查看页面渲染指令,获取所述表单查看页面对应的表单实例;
由所述展现层向所述应用层的表单服务请求所述表单实例;
通过所述应用层的所述表单服务调用所述基础设施层,由所述基础设施层获取所述表单实例的领域对象,从所述数据库中获得表单实例信息,并将所述表单实例信息返回所述展现层;
通过所述展现层将所述表单实例信息渲染成表单页面。
7.如权利要求1所述的方法,其特征在于,所述展现层提供可视化的Web表单构建器,所述Web表单构建器包括布局组件、基础字段和高级字段。
8.一种表单处理装置,其特征在于,应用于分布式表单系统,所述分布式表单系统采用领域驱动设计DDD的微服务架构,其中所述微服务架构包括展现层、应用层、领域层和基础设施层;所述表单处理装置包括:
第一处理单元,用于通过所述展现层接收表单处理指令,将基于所述表单处理指令生成的表单存储文件发送至所述应用层;
第二处理单元,用于通过所述应用层获取表单存储文件对应的表单服务,将所述表单存储文件和所述表单服务发送至所述领域层;
第三处理单元,用于通过所述领域层对所述表单服务进行业务逻辑处理以及对所述表单存储文件进行解析处理,得到表单数据,将所述表单数据发送至基础设施层;
第四处理单元,用于通过所述基础设施层将所述表单数据持久化到数据库中,并根据所述表单数据的表单标识查询所述分布式表单系统中的缓存是否存在与所述表单标识对应的表单配置信息,若存在,则更新所述缓存中的表单数据,若不存在,则将所述表单数据写入到所述缓存中。
9.一种分布式表单系统,采用领域驱动设计DDD的微服务架构,其中所述微服务架构包括展现层、应用层、领域层和基础设施层;所述分布式表单系统包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行所述权利要求1~7之任一所述方法。
10.一种计算机存储介质,所述计算机存储介质存储一个或多个程序,一个或多个程序当被包括多个应用程序的分布式表单系统执行时,使得分布式表单系统执行所述权利要求1~7之任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111423815.7A CN116186022A (zh) | 2021-11-26 | 2021-11-26 | 表单处理方法、装置、分布式表单系统和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111423815.7A CN116186022A (zh) | 2021-11-26 | 2021-11-26 | 表单处理方法、装置、分布式表单系统和计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116186022A true CN116186022A (zh) | 2023-05-30 |
Family
ID=86451012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111423815.7A Pending CN116186022A (zh) | 2021-11-26 | 2021-11-26 | 表单处理方法、装置、分布式表单系统和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116186022A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116860862A (zh) * | 2023-09-05 | 2023-10-10 | 北京百特云享科技有限公司 | 低代码平台的前端缓存方法及相关设备 |
-
2021
- 2021-11-26 CN CN202111423815.7A patent/CN116186022A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116860862A (zh) * | 2023-09-05 | 2023-10-10 | 北京百特云享科技有限公司 | 低代码平台的前端缓存方法及相关设备 |
CN116860862B (zh) * | 2023-09-05 | 2023-12-08 | 北京百特云享科技有限公司 | 低代码平台的前端缓存方法及相关设备 |
CN116860862B8 (zh) * | 2023-09-05 | 2023-12-26 | 北京百特云享科技有限公司 | 低代码平台的前端缓存方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11288142B2 (en) | Recovery strategy for a stream processing system | |
US11216302B2 (en) | Modifying task dependencies at worker nodes using precompiled libraries | |
US11681564B2 (en) | Heterogeneous computing-based task processing method and software and hardware framework system | |
CN109002362B (zh) | 一种服务方法、装置、系统以及电子设备 | |
CN108228166B (zh) | 一种基于模板的后端代码生成方法及系统 | |
US8209710B2 (en) | Implementation system for business applications | |
US9420034B2 (en) | Providing services to multiple tenants of an application | |
US20170075693A1 (en) | Handling multiple task sequences in a stream processing framework | |
US10120886B2 (en) | Database integration of originally decoupled components | |
US11106641B2 (en) | Supporting graph database backed object unmarshalling | |
CN111209319B (zh) | 一种数据服务方法及装置 | |
CN103136201A (zh) | 页面信息的展示方法和装置 | |
CN109117252B (zh) | 基于容器的任务处理的方法、系统及容器集群管理系统 | |
US10831565B2 (en) | Fault tolerant adapter system to consume database as a service | |
US20200310828A1 (en) | Method, function manager and arrangement for handling function calls | |
US11023527B2 (en) | Using observable data object to unmarshal graph data | |
CN116186022A (zh) | 表单处理方法、装置、分布式表单系统和计算机存储介质 | |
CN114884915B (zh) | 基于灰度发布的消息处理方法、装置以及设备 | |
US10536390B1 (en) | Requesting embedded hypermedia resources in data interchange format documents | |
US10567469B1 (en) | Embedding hypermedia resources in data interchange format documents | |
CN113791766A (zh) | 组合数据接口的方法、电子设备和可读存储介质 | |
CN114677114A (zh) | 基于图形拖拽的审批流程生成方法及装置 | |
CN114840718A (zh) | 链路数据处理方法、装置、设备、存储介质和程序产品 | |
CN111061727A (zh) | 表单数据保存方法及系统 | |
CN113515326B (zh) | 数据转换方法、装置、电子设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |