掌桥专利:专业的专利平台
掌桥专利
首页

软件即服务平台的开发方法及装置

文献发布时间:2024-04-18 19:58:30


软件即服务平台的开发方法及装置

技术领域

本申请涉及软件开发技术领域,具体而言,涉及一种软件即服务平台的开发方法及装置。

背景技术

SaaS是Software-as-a-Service(软件即服务)的简称,随着互联网技术的发展和应用软件的成熟,在21世纪开始兴起的一种完全创新的软件应用模式。SaaS是一种通过互联网提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。

相关的软件租户对SaaS平台中的组件进行自定义的方法,主要是通过SaaS厂商预置可配置数据的组件,分离逻辑和配置数据来实现。通过上述方法,客户按厂商规范,提供配置数据,达到自定义功能的目的。但是,预置之外的部分,需要找厂商重新开发新组件,再进行自定义配置,即用户无法自定义SaaS平台中的未开发组件的配置,进而导致用户的使用体验较差。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本申请实施例提供了一种软件即服务平台的开发方法及装置,以至少解决由于用户无法自定义软件即服务平台中的未开发组件的配置造成的用户使用体验较差的技术问题。

根据本申请实施例的一个方面,提供了一种软件即服务平台的开发方法,包括:解析用于描述业务对象的第一元数据,得到第一信息,解析用于描述视图对象的第二元数据,得到第二信息;在预设代码模板库中确定与业务对象对应的目标代码模板,通过目标代码模板,确定与第一信息对应的第一代码;将第一代码转化为可执行程序,通过可执行程序处理软件即服务平台租户输入的第一指令;通过预设低代码开发框架,生成与第二信息对应的组件对象,并确定与组件对象对应的第二代码;确定用于加载第二代码的加载引擎,通过加载引擎解析软件即服务平台租户输入的第二指令,以渲染软件即服务平台的前端页面。

可选地,第一元数据包括以下至少之一:行为信息、实体信息、属性信息、属性远程信息、属性持久化信息、属性扩展信息、字段名称信息、字段类型信息、字段来源信息、字段业务规则信息、字段加密规则信息和字段权限信息。

可选地,解析用于描述业务对象的第一元数据,得到第一信息,包括:解析第一元数据中的实体信息、行为信息、属性信息、属性远程信息、属性持久化信息和属性扩展信息,分别得到业务对象对应的类信息、接口信息、实体字段信息、服务调用信息、数据库信息和业务逻辑信息。

可选地,通过加载引擎解析软件即服务平台租户输入的第二指令,以渲染软件即服务平台的前端页面,包括:获取第二指令中待绑定的第一视图对象;通过加载引擎中的预设接口,调用与第一视图对象对应的第一业务对象,并对第一视图对象进行填充,得到第二视图对象;根据第二指令中的目标字段,确定第二视图对象对应的第一组件对象;根据第二指令中的配置信息,对第一组件对象进行排版,得到第二组件对象;对第二组件对象进行渲染。

可选地,通过预设低代码开发框架,生成与第二信息对应的组件对象,包括:根据预设低代码开发框架对应的设计规范,确定基本组件对象,其中,基本组件对象至少包括:文本框、下拉框、单选组件、多选组件、数据图表组件;根据第二信息中基本组件对象的逻辑关系,拼装基本组件对象,生成组件对象。

可选地,第二信息包括以下至少之一:前端组件信息、数据容器信息、接口调用信息、页面字段信息、自定义代码片段信息和页面文档对象模型结构信息,其中,页面文档对象模型结构信息用于集成前端组件信息、数据容器信息、接口调用信息、页面字段信息和自定义代码片段信息。

可选地,加载引擎还用于通过解释器运行于与软件即服务平台进行交互的不同终端设备。

根据本申请实施例的再一方面,还提供了一种软件即服务平台的开发装置,包括:解析模块,用于解析用于描述业务对象的第一元数据,得到第一信息,解析用于描述视图对象的第二元数据,得到第二信息;第一确定模块,用于在预设代码模板库中确定与业务对象对应的目标代码模板,通过目标代码模板,确定与第一信息对应的第一代码;转化模块,用于将第一代码转化为可执行程序,通过可执行程序处理软件即服务平台租户输入的第一指令;第二确定模块,用于通过预设低代码开发框架,生成与第二信息对应的组件对象,并确定与组件对象对应的第二代码;第三确定模块,用于确定用于加载第二代码的加载引擎,通过加载引擎解析软件即服务平台租户输入的第二指令,以渲染软件即服务平台的前端页面。

根据本申请实施例的再一方面,还提供了一种非易失性存储介质,存储介质包括存储的程序,其中,程序运行时控制存储介质所在的设备执行以上的软件即服务平台的开发方法。

根据本申请实施例的再一方面,还提供了一种电子设备,包括:存储器和处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的软件即服务平台的开发方法。

在本申请实施例中,采用解析用于描述业务对象的第一元数据,得到第一信息,解析用于描述视图对象的第二元数据,得到第二信息;在预设代码模板库中确定与业务对象对应的目标代码模板,通过目标代码模板,确定与第一信息对应的第一代码;将第一代码转化为可执行程序,通过可执行程序处理软件即服务平台租户输入的第一指令;通过预设低代码开发框架,生成与第二信息对应的组件对象,并确定与组件对象对应的第二代码;确定用于加载第二代码的加载引擎,通过加载引擎解析软件即服务平台租户输入的第二指令,以渲染软件即服务平台的前端页面的方式,通过对完成定义的业务对象和视图对象解析,得到第一信息和第二信息,并通过低代码技术,自动生成后端服务和前端页面,达到了自定义软件即服务平台中的未开发组件的配置的目的,从而实现了提升用户使用体验的技术效果,进而解决了由于用户无法自定义软件即服务平台中的未开发组件的配置造成的用户使用体验较差的技术问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的一种软件即服务平台的开发方法的流程图;

图2是根据本申请实施例的另一种软件即服务平台的开发方法的流程图;

图3是根据本申请实施例的一种后端服务的生成方法的流程图;

图4是根据本申请实施例的一种前端页面的生成方法的流程图;

图5是根据本申请实施例的一种软件即服务平台的开发装置的结构图;

图6是根据本申请实施例的一种软件即服务平台的开发方法的计算机终端(或电子设备)的硬件结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包括,例如,包括了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本申请实施例,提供了一种软件即服务平台的开发方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本申请实施例的一种软件即服务平台的开发方法的流程图,如图1所示,该方法包括如下步骤:

步骤S102,解析用于描述业务对象的第一元数据,得到第一信息,解析用于描述视图对象的第二元数据,得到第二信息。

根据本申请的一些可选的实施例,业务对象是指在业务逻辑层中用于封装业务数据和业务逻辑的对象,业务对象是对真实世界中的业务实体的抽象,包括了实体的属性和行为。业务对象通常与数据库中的表或者其他数据源中的数据相对应。视图对象是指在用户界面层中用于展示数据的对象,视图对象是业务对象的一个子集,通常只包括业务对象中部分属性的数据。视图对象的目的是将业务对象中的数据转化为用户界面上展示的数据,以及接收用户输入的数据并转化为业务对象可以处理的数据格式。

在SaaS中,业务对象是指与特定业务相关的数据实体或实体集合,其代表了应用程序中的核心数据模型,通常与数据库中的表或文档对应。业务对象包括了应用程序中的实体属性、关系和行为。视图对象是业务对象的一个特定表示,用于将业务对象的数据呈现给终端用户,视图对象通常由应用程序的前端逻辑生成,并根据用户的需求和权限进行定制。视图对象可以包括业务对象的部分或全部属性,并可能对数据进行格式化、过滤或聚合。在SaaS平台中,业务对象和视图对象之间的转换通常是由后端逻辑和前端逻辑之间的中间层处理的。这个中间层负责将数据库中的业务对象转换为前端需要的视图对象,并处理来自前端的用户请求,将其转换为适当的业务对象操作。

步骤S104,在预设代码模板库中确定与业务对象对应的目标代码模板,通过目标代码模板,确定与第一信息对应的第一代码。

根据本申请的另一些可选的实施例,预设代码模板库例如:Spring Boot项目模板,Spring Boot项目模板是一种预先定义好的项目结构和配置文件的模板,用于快速创建和启动Spring Boot应用程序。Spring Boot项目模板包括了一些常用的功能和库的依赖,以及一些默认的配置,方便开发人员快速搭建项目并开始开发。Spring Boot项目模板可以包括一些常见的功能模块,如数据库访问、日志记录、安全认证等,以及一些常用的开发工具和框架的集成,如Spring Data JPA、Spring Security、Swagger等。

可选地,首先,定义一个业务对象,例如一个名为"User"的用户对象,包括姓名和年龄两个属性。接下来,创建一个代码模板,例如一个名为"template.txt"的文本文件,其中包括了生成代码的结构和占位符。然后,编写一个生成代码的函数,该函数接受一个业务对象和代码模板作为输入,并返回生成的代码字符串。最后,调用生成代码的函数,传入业务对象和代码模板,即可生成代码。

步骤S106,将第一代码转化为可执行程序,通过可执行程序处理软件即服务平台租户输入的第一指令。

在本申请的一些可选的实施例,将第一代码转化为可执行程序,包括:将第一代码编译为机器语言,编译的过程会将源代码转换为可执行代码的中间形式,称为目标代码。将目标代码与所需的库文件进行链接,生成可执行文件。链接的过程会将目标代码与所需的外部库文件合并为一个可执行文件。运行生成的可执行文件,以执行第一代码。

SaaS平台的后端程序,即可执行程序的作用主要是处理和管理用户的请求和数据,并提供相应的服务和功能,具体负责以下功能的实现:1.用户认证和授权:后端程序负责验证用户的身份,并根据其权限级别授权其访问特定的功能和数据;2.数据存储和管理:后端程序负责将用户的数据存储在适当的数据库中,并提供对数据的增删改查等操作;3.业务逻辑处理:后端程序通过实现业务逻辑,处理用户的请求,执行相应的操作,并返回结果给前端;4.安全性和数据保护:后端程序负责确保用户数据的安全性和保护隐私,包括数据加密、访问控制、防止恶意攻击等;5.性能优化和扩展性:后端程序需要优化和调整以提高性能,以应对大量用户并发请求的情况;6.集成和接口开发:后端程序需要与其他系统进行集成,提供接口以与外部系统进行数据交换和通信。

步骤S108,通过预设低代码开发框架,生成与第二信息对应的组件对象,并确定与组件对象对应的第二代码。

作为本申请的一些可选的实施例,预设低代码开发框架例如:Lowcode-Engine框架,其中,Lowcode-Engine是一种用于快速开发应用程序的软件开发框架,其提供了一组可视化工具和组件,使开发人员可以通过拖放和配置而不是编写代码来创建应用程序。低代码引擎框架可以大大加快应用程序开发的速度,并降低技术门槛,使非技术人员也能参与到应用程序开发中来。低代码引擎框架通常包括以下功能和特点:1.可视化拖放界面:开发人员可以通过拖放组件和配置属性来设计应用程序界面,无需手动编写代码;2.可重用组件库:低代码引擎框架通常提供了一套预定义的组件库,开发人员可以直接使用这些组件来构建应用程序;3.业务逻辑配置:开发人员可以通过配置工具来定义应用程序的业务逻辑,例如表单验证、流程控制等;4.数据模型管理:低代码引擎框架通常提供了一种数据模型管理工具,允许开发人员定义和管理应用程序的数据模型;5.代码生成和自动化测试:低代码引擎框架通常具有代码生成和自动化测试功能,可以自动生成应用程序的代码,并提供测试工具来验证应用程序的正确性。

第二信息对应的组件对象即SaaS平台中的前端组件,其中,前端中的组件是指可以独立、可复用的用户界面元素或模块,用于构建网页或应用的不同部分。组件可以是按钮、表单、导航栏、轮播图等,其具有自己的样式、行为和功能,并且可以被多次使用和组合在一起。通过使用组件,开发人员可以更高效地开发和维护前端代码,提高代码的可复用性和可维护性。组件化的开发方式也使得团队合作更加方便,不同开发人员可以独立地开发和测试各自负责的组件,最后再组合起来形成完整的网页或应用。

步骤S110,确定用于加载第二代码的加载引擎,通过加载引擎解析软件即服务平台租户输入的第二指令,以渲染软件即服务平台的前端页面。

在本申请的一些可选的实施例中,首先,SaaS平台的前端页面通常通过用户界面提供给租户,租户在界面上输入指令,比如点击按钮、填写表单等。通过前端框架或者原生JavaScript代码,监听并捕获租户的指令。其次,将捕获到的指令转换为一个可处理的指令对象,指令对象通常包括指令类型、参数、目标元素等信息,以便后续的处理。再次,通过加载引擎解析指令,并根据指令类型执行相应的操作。然后,将指令对象传递给加载的引擎,引擎根据指令类型执行相应的解析操作。例如,对于填写表单的指令,引擎可以将表单数据保存到数据库;对于点击按钮的指令,引擎可以执行相应的业务逻辑。最后,引擎执行指令后,会返回需要更新的数据或者状态。根据这些返回的数据,前端页面可以更新相应的内容,比如更新表单的验证状态、显示保存成功的提示信息等。

根据上述步骤,通过对完成定义的业务对象和视图对象解析,得到第一信息和第二信息,并通过低代码技术,自动生成后端服务和前端页面,达到了自定义软件即服务平台中的未开发组件的配置的目的,从而实现了提升用户使用体验的技术效果。

根据本申请的一些可选的实施例,第一元数据包括以下至少之一:行为信息、实体信息、属性信息、属性远程信息、属性持久化信息、属性扩展信息、字段名称信息、字段类型信息、字段来源信息、字段业务规则信息、字段加密规则信息和字段权限信息。

根据本申请的另一些可选的实施例,解析用于描述业务对象的第一元数据,得到第一信息,包括以下步骤:解析第一元数据中的实体信息、行为信息、属性信息、属性远程信息、属性持久化信息和属性扩展信息,分别得到业务对象对应的类信息、接口信息、实体字段信息、服务调用信息、数据库信息和业务逻辑信息。

行为(Action):指代SaaS平台中的某个操作或功能,例如登录、注册、添加商品等。实体(Entity):指代SaaS平台中的某个具体对象或实例,例如用户、商品、订单等。属性(Attribute):指代实体的某个特性或特征,描述实体的某个方面,例如用户的姓名、商品的价格、订单的状态等。属性远程(Remote Attribute):指代属性的值需要从远程服务器或外部SaaS平台获取的情况,例如获取用户的头像图片的统一资源定位符。属性持久化(Persistent Attribute):指代属性的值需要被永久保存在数据库或其他持久化存储中的情况,例如保存用户的注册时间、商品的库存数量等。属性扩展(Extended Attribute):指代通过某种方式对属性进行扩展或补充,以满足特定的需求,例如为用户添加额外的自定义字段。字段名称(Field Name):指代属性或字段的名称或标识符,用于唯一标识该属性或字段。字段类型(Field Type):指代属性或字段的数据类型,例如字符串、整数、日期等。字段来源(Field Source):指代属性或字段的数据来源,例如从用户输入、数据库查询结果、外部接口等。字段业务规则(Field Business Rules):指代对属性或字段的值所施加的业务逻辑或规则,例如对用户年龄字段的范围限制、对商品价格字段的格式要求等。字段加密规则(Field Encryption Rules):指代对属性或字段的值进行加密处理的规则,以保护敏感信息的安全性,例如对用户密码字段进行哈希加密。字段权限(Field Permissions):指代对属性或字段的访问权限控制规则,用于限制不同用户或角色对属性或字段的操作或查看权限。

在本申请的一些可选的实施例,通过加载引擎解析软件即服务平台租户输入的第二指令,以渲染软件即服务平台的前端页面,可以通过以下方法实现:获取第二指令中待绑定的第一视图对象;通过加载引擎中的预设接口,调用与第一视图对象对应的第一业务对象,并对第一视图对象进行填充,得到第二视图对象;根据第二指令中的目标字段,确定第二视图对象对应的第一组件对象;根据第二指令中的配置信息,对第一组件对象进行排版,得到第二组件对象;对第二组件对象进行渲染。

具体而言,首先,调用接口获取业务对象数据,解析接口返回的数据,将数据填充到业务对象中。其次,获取字段配置信息,包括字段类型、字段名称、字段校验规则等;根据字段类型,选择对应的组件进行加载。例如,如果字段类型为文本输入,则加载文本输入框组件;如果字段类型为下拉列表,则加载下拉列表组件。最后,获取页面布局配置信息,包括组件的位置、大小、排列方式等;根据布局配置信息,调整组件的位置和大小,使其满足布局要求;根据布局配置信息,确定组件的排列方式,例如水平排列、垂直排列等。

作为本申请的一些可选的实施例,通过预设低代码开发框架,生成与第二信息对应的组件对象,通过以下方法实现:根据预设低代码开发框架对应的设计规范,确定基本组件对象,其中,基本组件对象至少包括:文本框、下拉框、单选组件、多选组件、数据图表组件;根据第二信息中基本组件对象的逻辑关系,拼装基本组件对象,生成组件对象。

基本组件对象例如:按钮(Button):用于触发交互动作或提交表单;输入框(Input):用于输入文本或数字;文本框(Textarea):用于输入多行文本;下拉框(Dropdown):用于选择一个或多个选项;单选框(Radio):用于从多个选项中选择一个;复选框(Checkbox):用于从多个选项中选择多个;列表(List):用于展示一组数据,可以支持分页或滚动加载;表格(Table):用于展示二维数据,支持排序、过滤和分页等功能;弹窗(Modal):用于展示提示信息、操作确认或展示详细内容;标签页(Tabs):用于切换不同的内容页面;导航栏(Navbar):用于导航不同的页面或功能区域。

举例而言,假设需要生成一个简单的计算器组件对象,包括加法和减法功能,具体步骤如下:首先,确定组件对象的功能和需求:计算器组件需要能够执行加法和减法运算。其次,确定所需的基本组件对象:加法组件对象和减法组件对象。然后,根据基本组件对象的逻辑关系,将组件按照合适的顺序进行拼装:可以先进行加法运算,再进行减法运算。最后,根据拼装后的基本组件对象,生成组件对象:将加法组件对象和减法组件对象组合成一个计算器组件对象。

在本申请的一些可选的实施例中,第二信息包括以下至少之一:前端组件信息、数据容器信息、接口调用信息、页面字段信息、自定义代码片段信息和页面文档对象模型结构信息,其中,页面文档对象模型结构信息用于集成前端组件信息、数据容器信息、接口调用信息、页面字段信息和自定义代码片段信息。

前端组件是前端开发中的一种模块化的代码组织方式,前端组件将页面的各个功能模块拆分成独立的组件,每个组件负责自己的渲染和交互逻辑。组件可以是简单的按钮、表单输入框等,也可以是复杂的列表、轮播图等。数据容器是用来存储和管理应用程序中的数据的地方,数据容器可以是一个简单的变量,也可以是一个专门的数据管理库,数据容器可以在不同的组件之间共享数据,以便实现数据的统一管理和状态的一致性。接口调用是指前端应用程序与后端服务器之间进行数据交互的过程。前端通过调用接口来获取后端的数据,并将数据展示在页面上。接口调用可以使用Ajax、Fetch、Axios等工具来完成。页面字段是指页面上的各种输入框、下拉框、复选框等表单元素,以及展示数据的文本、图片等元素。页面字段用来接收用户输入或展示数据,通过与数据容器的交互,可以实现数据的传递和更新。自定义代码片段是指开发者根据自己的需求编写的代码,用来实现特定的功能或解决特定的问题。自定义代码片段可以是一个函数、一个类、一个组件等,通过在适当的地方调用它,可以实现所需的功能。页面文档对象模型结构是指浏览器将超文本标记语言文档解析成一个树形结构,通过页面文档对象模型结构可以对页面上的元素进行增删改查等操作。

作为本申请的另一些可选的实施例,加载引擎还用于通过解释器运行于与软件即服务平台进行交互的不同终端设备。

终端设备可以是桌面电脑、笔记本电脑、智能手机、平板电脑或其他智能设备。加载引擎是负责解析和执行代码的组件,而解释器则负责将代码转换为可执行的指令。当终端设备与软件即服务平台进行交互时,加载引擎和解释器可以帮助终端设备执行所需的操作,并与平台进行通信。这种交互可以包括向平台发送请求、接收和处理响应、更新数据等。终端设备通过加载引擎和解释器与软件即服务平台进行交互,可以实现远程访问和使用各种服务和功能。

图2是根据本申请实施例的一种软件即服务平台的开发方法的流程图,如图2所示,该方法包括如下步骤:

步骤S202,定义对象。

步骤S2021,建立元数据表,为对象定义提供抽象元模型支持,其中,元数据表提供了基本的实体和关系,用于记录和管理数据库中的表、列、索引等对象的属性和定义。元数据表包含了关于数据集结构、类型、约束、索引、关联关系等信息,帮助开发人员和管理员更好地理解和操作数据。

对象元模型是用于描述SaaS平台中的对象和对象之间的关系的模型,对象元模型定义了对象的属性、行为和关联,并描述了对象的分类和继承关系。对象元模型通常使用类图来表示,其中类表示对象的类型,属性表示对象的特征,方法表示对象的行为,关联表示对象之间的关系。视图元模型是用于描述SaaS平台中的视图和视图之间的关系的模型,视图元模型定义了视图的属性、操作和关联,并描述了视图之间的组织结构和依赖关系。视图元模型通常使用视图模型图来表示,其中视图表示系统的可见部分,属性表示视图的特征,操作表示视图的行为,关联表示视图之间的关系。

元数据表通常包含以下字段或属性,表名:指定数据集的名称;列名:指定数据集中的列名;数据类型:指定每个列的数据类型,如整数、字符串、日期等;约束:指定每个列的约束条件,如唯一性约束、非空约束等;索引:指定每个列或一组列上的索引,以提高查询性能;关联关系:指定表与其他表之间的关联关系,如主键-外键关系等;备注:提供对数据集的额外说明或注释。通过元数据表,用户可以快速了解和查询数据库中存储的数据集的结构和属性,从而更好地进行数据管理、查询和分析。

步骤S2022,定义业务对象,得到对象元模型。

业务对象主要描述后端服务,包括行为字段和属性字段,行为字段用于定义接口能力,属性字段用于定义字段基本信息,其中,基本信息包括字段名、字段类型、字段来源、字段来源获取规则、字段业务规则、是否索引字段、是否持久化、字段加密规则、字段权限等。

对象元模型包括:行为信息、实体信息,实体信息包括:属性信息,属性信息除了字段名和字段类型外,还包括扩展部分:需要描述字段来源、字段来源获取规则、字段业务规则、是否索引字段、是否持久化、字段加密规则、字段权限。

例如,在交易场景下,对行为信息、实体信息、属性信息、字段名、字段类型、字段来源、字段来源获取规则、字段业务规则、是否索引字段、是否持久化、字段加密规则、字段权限的解释如下:

步骤S2023,定义视图对象,得到视图元模型。

视图对象主要描述前端页面,包括页面展示和业务对象映射规则,页面展示包括:页面字段名、字段类型、字段显示规则;业务对象映射规则用于定义前端字段的取值逻辑,包括:引用的业务对象、引用的业务对象字段。

视图元模型描述包括页面行为、页面数据实体,实体属性包括字段名、页面字段类型、页面字段显示规则、页面字段的取值逻辑,引用的业务对象。

步骤S2024,基于对象元模型和视图元模型,提供对象设计器页面。

在对象设计器页面中,可以以使用对象元模型和视图元模型来创建和编辑对象和视图。通过对象元模型,可以定义系统中的对象及其属性、行为和关系。通过视图元模型,可以定义系统中的用户界面及其组件、布局和事件。通过对象设计器页面,可以使用这两种元模型来创建和编辑对象和视图,从而实现系统的设计和开发。

步骤S204,生成后端服务。图3是根据本申请实施例的一种后端服务的生成方法的流程图,如图3所示,该方法包括如下步骤:

步骤S2041,在对象设计器中选取目标业务对象,在预设代码模板库中确定与业务对象对应的目标代码模板。

步骤S2042,解析用于描述业务对象的第一元数据,得到第一信息,通过目标代码模板,确定与第一信息对应的第一代码。

解析第一元数据中的实体信息、行为信息、属性信息、属性远程信息、属性持久化信息和属性扩展信息,分别得到业务对象对应的类信息、接口信息、实体字段信息、服务调用信息、数据库信息和业务逻辑信息。

步骤S2043,将第一代码转化为服务,并对该服务进行打包处理。

具体而言,首先,将代码封装为一个独立的服务。1.将代码中的主要功能封装为一个独立的函数或类,确保该函数或类可以独立运行并提供所需的功能;2.使用框架或库创建一个Web服务,将该函数或类作为服务的一个接口或路由进行注册。其次,创建启动脚本,该脚本用于启动服务。在脚本中,加载服务所需的依赖项,初始化服务的配置,然后启动服务并监听指定的端口。再次,使用合适的工具将服务进行打包处理,以便可以在不同环境中轻部署和运行。然后,将打包好的服务镜像部署到目标环境中,可以选择使用容器编排工具进行部署和管理,根据实际需求配置服务的网络访问权限、资源限制等参数,并启动服务。最后,使用合适的测试框架和工具对服务进行测试,确保其功能正常。同时,配置适当的监控工具对服务进行监控,及时发现和解决潜在的问题。

步骤S2044,发布服务。

步骤S206,生成前端页面。图4是根据本申请实施例的一种前端页面的生成方法的流程图,如图4所示,该方法包括如下步骤:

步骤S2061,基于Lowcode-Engine框架,提供用户界面设计器和领域特定语言DSL生成。

用户界面设计器可以提供一个可视化的界面,让用户通过拖拽和放置组件的方式来设计用户界面,用户可以选择不同的组件,如按钮文本框,表格等,并进行布局和样式设置,设计完成后,用户可以预览界面效果,并进行调整和优化。领域特定语言DSL生成器可以根据用户在用户界面设计器中设计的界面,自动生成相应的DSL代码,其中,领域特定语言是一种特定于某个领域的编程言,可以用来描述该领域的问题和解决方案。通过生成DSL代码,用户可以更加方便地使用Lowcode-Engine框架进行开发和定制。生成的DSL代码可以用于定义界面的结构、布局、样式以及交互等方面的逻辑。用户可以根据自己的需求对生成的代码进行修改和扩展,以实现更复杂的功能。

步骤S2062,基于Lowcode-Engine设计规范,实现基本组件,包括文本框、下拉框、单选组件、多选组件、数据图表组件等基础组件。

步骤S2063,实现动态加载引擎,动态解析视图模型,自动拼装步骤S2062中的基础组件,生成视图、接口调用、数据映射等信息,对生成的内容可通过用户界面设计器进行调整。

具体地,自动拼装基础组件包括如下步骤:首先需要定义各个基础组件的接口和功能,这些基础组件可以是已经存在的组件,也可以是根据需求进行开发的组件。其次,为了实现自动化拼装,需要将基础组件的配置信息进行统一管理,即可以使用配置文件、数据库或其他方式来存储和管理组件的配置信息。再次,在系统启动时,需要根据配置信息加载对应的基础组件,并根据配置信息,将加载的基础组件进行组装,形成一个完整的组件或系统。最后,组装完成后,需要对组件进行初始化和启动。可以调用组件的初始化方法或提供的接口来启动组件。

步骤S2064,将步骤S2063生成的内容转换成DSL,其中,DSL包括:前端组件信息、数据容器信息、接口调用信息、页面字段信息、自定义代码片段信息以及上述所有信息集成的页面文档对象模型结构信息。

步骤S2065,实现Web、H5等协议的DSL加载引擎。

根据DSL的语法规则,实现词法分析器将DSL代码分解为标记,词法分析器可以使用正则表达式或其他方法来识别和提取标记;根据DSL的语法规则,实现语法分析器来构建抽象语法树。根据DSL的语义和要求,实现DSL加载引擎来执行DSL代码,加载引擎可以根据抽象语法树中的指令和表达式来执行相应的操作,如加载和解析Web、H5等协议的资源。为DSL加载引擎提供接口,以便用户可以使用DSL来编写和执行加载任务,其中,接口可以包括加载DSL代码、执行DSL代码和获取执行结果等功能。

步骤S2066,在前端应用中内置对应的DSL加载引擎,拉取租户DSL并渲染页面。

在前端应用的适当位置,例如应用初始化阶段或页面加载时,发起DSL加载请求,将租户标识或其他必要的参数传递给DSL加载接口。DSL加载接口接收到请求后,调用DSL加载引擎加载和解析租户的DSL代码,其中,DSL加载引擎可以通过网络请求、文件读取或其他适当的方式获取DSL代码。一旦DSL代码被加载和解析为前端应用可理解的数据结构,就可以使用这些数据结构来动态生成页面。如果租户的DSL代码发生变化,可以通过重新发起DSL加载请求来更新页面。

步骤S208,发布功能。

将后端服务打包为可执行单元,自动化部署和运行;将前端代码编译为特定领域语言,存储在云端,各终端通过租户拉取自身特定领域语言文件,依托于特定领域语言解释器和动态加载引擎,生成前端页面。

通过上述步骤,在自定义SaaS平台中的未开发组件配置的情况下,具有如下优点:1.适用面广,不局限于某个特定场景,适用于大部分的业务场景;2.使用成本低,租户在实现个性化SaaS平台时,通过对象设计器和用户界面设计器,仅需要填写表单和拖拽即可;3.特殊场景支持代码嵌入,对于平台不能解决的特殊问题,可通过嵌入代码段的方式实现。

图5是根据本申请实施例的一种软件即服务平台的开发装置的结构图,如图5所示,该装置包括:

解析模块50,用于解析用于描述业务对象的第一元数据,得到第一信息,解析用于描述视图对象的第二元数据,得到第二信息;

第一确定模块52,用于在预设代码模板库中确定与业务对象对应的目标代码模板,通过目标代码模板,确定与第一信息对应的第一代码;

转化模块54,用于将第一代码转化为可执行程序,通过可执行程序处理软件即服务平台租户输入的第一指令;

第二确定模块56,用于通过预设低代码开发框架,生成与第二信息对应的组件对象,并确定与组件对象对应的第二代码;

第三确定模块58,用于确定用于加载第二代码的加载引擎,通过加载引擎解析软件即服务平台租户输入的第二指令,以渲染软件即服务平台的前端页面。

需要说明的是,上述图5中的各个模块可以是程序模块(例如是实现某种特定功能的程序指令集合),也可以是硬件模块,对于后者,其可以表现为以下形式,但不限于此:上述各个模块的表现形式均为一个处理器,或者,上述各个模块的功能通过一个处理器实现。

需要说明的是,图5所示实施例的优选实施方式可以参见图1所示实施例的相关描述,此处不再赘述。

图6示出了一种用于实现软件即服务平台的开发方法的计算机终端(或移动设备)的硬件结构框图。如图6所示,计算机终端60(或移动设备60)可以包括一个或多个(图中采用602a、602b,……,602n来示出)处理器602(处理器602可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器604、以及用于通信功能的传输模块606。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图6所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端60还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。

应当注意到的是上述一个或多个处理器602和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端60(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。

存储器604可用于存储应用软件的软件程序以及模块,如本申请实施例中的软件即服务平台的开发方法对应的程序指令/数据存储装置,处理器602通过运行存储在存储器604内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的软件即服务平台的开发方法。存储器604可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器604可进一步包括相对于处理器602远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端60。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输模块606用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端60的通信供应商提供的无线网络。在一个实例中,传输模块606包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块606可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端60(或移动设备)的用户界面进行交互。

此处需要说明的是,在一些可选实施例中,上述图6所示的计算机设备(或电子设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图6仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或电子设备)中的部件的类型。

需要说明的是,图6所示的电子设备用于执行图1所示的软件即服务平台的开发方法,因此上述命令的执行方法中的相关解释说明也适用于该电子设备,此处不再赘述。

本申请实施例还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,程序运行时控制存储介质所在的设备执行以上的软件即服务平台的开发方法。

非易失性存储介质执行以下功能的程序:解析用于描述业务对象的第一元数据,得到第一信息,解析用于描述视图对象的第二元数据,得到第二信息;在预设代码模板库中确定与业务对象对应的目标代码模板,通过目标代码模板,确定与第一信息对应的第一代码;将第一代码转化为可执行程序,通过可执行程序处理软件即服务平台租户输入的第一指令;通过预设低代码开发框架,生成与第二信息对应的组件对象,并确定与组件对象对应的第二代码;确定用于加载第二代码的加载引擎,通过加载引擎解析软件即服务平台租户输入的第二指令,以渲染软件即服务平台的前端页面。

本申请实施例还提供了一种电子设备,包括:存储器和处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的软件即服务平台的开发方法。

处理器用于运行执行以下功能的程序:解析用于描述业务对象的第一元数据,得到第一信息,解析用于描述视图对象的第二元数据,得到第二信息;在预设代码模板库中确定与业务对象对应的目标代码模板,通过目标代码模板,确定与第一信息对应的第一代码;将第一代码转化为可执行程序,通过可执行程序处理软件即服务平台租户输入的第一指令;通过预设低代码开发框架,生成与第二信息对应的组件对象,并确定与组件对象对应的第二代码;确定用于加载第二代码的加载引擎,通过加载引擎解析软件即服务平台租户输入的第二指令,以渲染软件即服务平台的前端页面。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

相关技术
  • 软件开发包的编译方法、装置、软件开发系统及服务器
  • 软件开发包的编译方法、装置、软件开发系统及服务器
技术分类

06120116499653