基于数据模型驱动多种软件系统界面变化的方法与流程

文档序号:25542741发布日期:2021-06-18 20:39阅读:130来源:国知局
基于数据模型驱动多种软件系统界面变化的方法与流程

本发明涉及软件系统界面设计技术领域,具体为一种基于数据模型驱动多种软件系统界面变化的方法。



背景技术:

在软件工程中软件界面也称作ui(userinterface),或者称为人机交互界面,是人机交互的重要部分,也是软件使用的第一印象,是软件设计的重要组成部分,软件界面的易用性直接关系人机交互中的直接使用体验。在现代软件系统中,软件界面也称为图形界面(简称gui),是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。

当下的软件系统中,不同的软件系统都各自有自己独立的人机交互界面,用户使用不同软件就必须得适应不同软件系统的软件界面,增加了用户对于不同软件界面的学习成本,也造成了时间浪费。另外,人机交互界面的开发方式还是采用非常传统的开发方式,即软件系统的人机交互界面由软件系统编写人员编写,编写人员将软件系统中的交互与界面呈现样式直接写入到软件系统的程序代码中,由于这种人机交互界面的开发方式需要由专业的开发人员编写代码,因此使得只有开发人员可以更改界面的呈现样式,用户无法根据自己的喜好来更改界面样式。



技术实现要素:

本发明的目的是改善现有技术中所存在的上述不足,提供一种基于数据模型驱动多种软件系统界面变化的方法,实现人机交互界面随着用户账户而无缝迁移到另外一个软件系统中,从而可以从技术侧达到用数据模型驱动web软件系统界面变化的效果。而且在此技术的基础上,通过数据模型的变化将能够实现不同的人,不同的配置呈现不一样的web软件系统人机交互界面。

为了实现上述发明目的,本发明提供了如下技术方案:

一种基于数据模型驱动多种软件系统界面变化的方法,包括:

抽象化描述步骤:对人机交互界面进行抽象化描述,并存储到抽象数据模型中,并将抽象数据模型存储到云服务器;

加载步骤:软件系统加载所述抽象数据模型,将抽象数据模型缓存于用户计算机内存中;

解析步骤:当抽象数据模型加载成功后,在软件系统中解析抽象数据模型,使得抽象数据模型中的表达式代码在软件系统运行环境中的运行结果写入到抽象数据模型中;

映射步骤:将解析后的抽象数据模型与图形化界面进行映射,使得抽象数据模型中的运行结果映射为图形化界面中的配置对象。

上述方案中,通过对人机交互界面进行抽象化描述得到抽象数据模型,存储于云服务器中,并将解析后的抽象数据模型与图形化界面进行映射,使得抽象数据模型中的运行结果映射为图形化界面中的配置对象。一方面,用户可以通过图形化界面配置的方式更改抽象数据模型,即更改人机交互界面的呈现方式,而无需依赖于专业的软件开发人员编写新的代码,既可以实现用户对人机交互界面进行个性化设置,又为用户提供了极大的便利。另一方面,通过将抽象数据模型存储于云服务器中,当其他软件系统想用使用某种软件系统的人机交互界面时,就可以从云服务器中获取该抽象数据模型,基于该抽象数据模型进行渲染即可实现一种软件系统的人机交互界面无缝迁移到其他软件系统中。

所述解析步骤中,首先使用递归算法对抽象数据模型进行深层递归,找出抽象数据模型中含有的表达式代码,并将找到的表达式代码读取到用户计算机内存中;然后将抽象数据模型中的表达式代码进行编译执行,使编译后执行时的表达式代码能获得表达式代码在当前软件系统运行环境中的运行结果,并将运行结果写入到用户计算机内存中存储的抽象数据模型中。

所述映射步骤中,对抽象数据模型进行深层遍历,并判断遍历到的每一个运行结果是否为图形化界面所支持的配置对象,如果是,则基于当前运行结果进行图形化界面的渲染,渲染完图形化界面后,再根据抽象数据模型中配置的交互事件进行人机交互界面的事件响应与绑定;如果不是,则继续遍历下一个运行结果。

上述方案中,通过将抽象数据模型与图形化界面进行映射,使得运行结果成为图形化界面中的配置对象,也就是说,用户可以对运行结果在图形化界面中进行数据配置,继而实现人机交互界面呈现方式的改变,为用户操作提供了极大的便利。

所述抽象化描述步骤中,所述抽象数据模型存储于云服务器或者本地终端,且得到抽象数据模型后,在抽象数据模型中向软件执行环境中暴露一个全局的key值。

上述方案中,在抽象数据模型中向软件执行环境中暴露一个全局的key值的好处是便于软件系统知晓从本地终端还是云服务器中读取抽象数据模型。将抽象数据模型存储于本地终端可以实现用户通过图形化界面配置的方式改变人家交互界面的呈现方式,将抽象数据模型存储云服务器则还可以实现多种软件系统之间协同变化,即多种软件系统呈现同一种人机交互界面。

在映射步骤之后,还包括实时渲染步骤:获取用户在图形化界面的配置数据,并基于变化后的抽象数据模型进行实时渲染,并展示出渲染后的人机交互界面。

一种基于数据模型驱动多种软件系统界面变化的系统,包括:

抽象化描述模块,被配置为对人机交互界面进行抽象化描述,并存储到抽象数据模型中,并将抽象数据模型存储到云服务器;

加载模块,被配置为软件系统加载所述抽象数据模型,将抽象数据模型缓存于用户计算机内存中;

解析模块,被配置为当抽象数据模型加载成功后,在软件系统中解析抽象数据模型,使得抽象数据模型中的表达式代码在软件系统运行环境中的运行结果写入到抽象数据模型中;

映射模块,被配置为将解析后的抽象数据模型与图形化界面进行映射,使得抽象数据模型中的运行结果映射为图形化界面中的配置对象。

所述解析模块具体被配置为:首先使用递归算法对抽象数据模型进行深层递归,找出抽象数据模型中含有的表达式代码,并将找到的表达式代码读取到用户计算机内存中;然后将抽象数据模型中的表达式代码进行编译执行,使编译后执行时的表达式代码能获得表达式代码在当前软件系统运行环境中的运行结果,并将运行结果写入到用户计算机内存中存储的抽象数据模型中。

所述映射模块具体被配置为:对抽象数据模型进行深层遍历,并判断遍历到的每一个运行结果是否为图形化界面所支持的配置对象,如果是,则基于当前运行结果进行图形化界面的渲染,渲染完图形化界面后,再根据抽象数据模型中配置的交互事件进行人机交互界面的事件响应与绑定;如果不是,则继续遍历下一个运行结果。

所述抽象化描述模块还被配置为:将抽象数据模型存储于云服务器或者本地终端,且得到抽象数据模型后,在抽象数据模型中向软件执行环境中暴露一个全局的key值。

还包括实时渲染模块,被配置为获取用户在图形化界面的配置数据,并基于变化后的抽象数据模型进行实时渲染,并展示出渲染后的人机交互界面。

再一方面,本发明实施例同时提供了一种包括计算机可读指令的计算机可读存储介质,所述计算机可读指令在被执行时使处理器执行本发明实施例中所述方法中的操作。

再一方面,本发明实施例同时提供了一种电子设备,包括:存储器,存储程序指令;处理器,与所述存储器相连接,执行存储器中的程序指令,实现本发明实施例中所述方法。

与传统软件系统的人机交互界面图形化呈现方式不同的是,本发明方法可以实现用户通过自己更改人机交互界面的抽象数据模型配置,达到更改人机交互界面呈现的图形化效果的目的,也就是不具有专业开发能力的用户也可以根据自己的喜好更改人家交互界面,实现个性化界面呈现。

另外,借助远端的云服务器存储技术,也能实现用户在一个软件系统中的交互习惯和图形化界面配置信息无缝迁移到另外一个软件系统中,这样就能使得用户在众多的软件系统中,只用学习一次就能轻松上手其他的软件系统,这必将大大的节省使用者的时间和学习成本。

本发明技术的其他优势请见实施例部分的相应描述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例公开的一种基于数据模型驱动多种软件系统界面变化的方法的流程图。

图2为本发明实施例公开的一种基于数据模型驱动多种软件系统界面变化的系统的组成框图。

具体实施方式

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

如图1所示,本发明实施例公开了一种基于数据模型驱动多种软件系统界面改变的方法,包括以下步骤:

s10,对人机交互界面进行抽象化描述,并存储到抽象数据模型中,并将抽象数据模型存储到本地终端或者云服务器。

对人机交互界面进行抽象化描述的含义是,把现实世界人对事物的自然语言描述,转化为计算机能识别的技术参数信息。比如人机交互界面的顶部标题栏、菜单栏、工具条、软件交互主界面、页脚状态栏等,这些都可以抽象化描述为计算机能识别的技术参数,可以定义为界面要素。每一项界面要素又可以基于图形呈现所必须的基本信息进行抽象化描述,比如顶部标题栏的字体、字号大小、字体颜色、标题栏背景色、标题栏圆角弧度、标题栏是否显示关闭按钮等一系列能进行技术参数化的渲染要素,将抽象化描述结果最终存储到一个约定好的数据模型中,得到抽象数据模型。抽象数据模型为树型结构,在抽象数据模型中的每一个抽象描述对象对应于人机交互界面的一个技术参数,即一个界面要素的其中一个渲染要素。

得到抽象数据模型后,在抽象数据模型中向软件执行环境中暴露一个全局的key值,才完成对人机交互界面的参数抽象化。此处暴露一个全局的key值的目的是保障计算机程序在进行数据访问时的便捷性,同时也是一种约定,抽象数据模型可以由外部或者本地配置发生动态变化,所以在程序重新渲染时,软件系统需要知道从哪个内存位置去获取该配置项。

本步骤中,基于计算机图形学原理,与现代软件系统的人机交互设计逻辑结合,把要呈现的现代软件系统人机交互界面进行抽象化描述,使其能一一枚举出现代软件系统人机交互界面,在图形呈现时所需要的关键技术参数,便于计算机识别。

需要注意的是,将抽象数据模型存储在云服务器的目的,是借用云服务器的分发能力同步到其他的软件系统中,便于用户将一个软件系统的人机交互界面可以应用到其他软件系统中,进而实现用户在使用其他软件系统时可以不用再去学习其他软件系统的人机交互方式,因此对于云服务器中抽象数据模型的访问仅限于用户自己,而并不是共享给其他用户。因此,在云服务器存储抽象数据模型时,需要将抽象数据模型和授权认证的身份信息进行绑定,在访问时身份认证通过后才可读取数据。

s20,软件系统加载抽象数据模型,将抽象数据模型缓存于用户计算机内存中。

在软件系统启动过程中,在人机交互界面呈现之前,由软件系统读取本地终端或者云服务器中存储的由步骤s10得到的抽象数据模型,并存储在用户计算机内存中。在本方案中将本地终端磁盘或者云服务器上的抽象数据模型加载到用户计算机的内存中,方便于在后续过程中对抽象数据模型进行频繁的读写操作。

需要理解的是,此处的软件系统并不限定于具体是何种软件系统,可以是任意的软件系统。

只要是想同步人机交互界面的软件系统都需要加载该抽象数据模型。软件系统在加载抽象数据模型时,可能会存在加载失败的情况,导致人机交互界面无法呈现。为了提高软件系统的容错能力,当加载失败时可以重新执行加载,若多次加载均失败,则可以从人机交互界面明确提示用户程序启动失败请检查网络和配置等提示信息。

s30,当抽象数据模型加载成功后,在软件系统中解析抽象数据模型,使得抽象数据模型中的表达式代码在所述软件系统运行环境中的运行结果,写入到用户计算机内存中的抽象数据模型中。

抽象数据模型为树结构,存储的是一些表达式代码,表达式代码即计算机代码。解析时,首先使用递归算法对抽象数据模型进行深层递归,找出抽象数据模型中含有的表达式代码,并将找到的表达式代码读取到用户计算机内存中,然后将抽象数据模型中的表达式代码进行编译执行,例如使用ecma262标准化的脚本程序设计语言中的api接口(具体是newfunctionapi接口)进行编译,使编译后执行时的表达式代码能获得表达式代码在当前软件系统运行环境中的运行结果,并将运行结果写入到内存缓存中存储的抽象数据模型中。

程序运行结果只是程序代码执行完毕后的最终形态,在此处执行完毕后就是获取到的值,需要手动将获取到的值进行返回,将运行结果存储到抽象数据模型中。将运行结果返回抽象数据模型后,抽象数据模型中则不再有表达式代码,而是该表达式代码对应的运行结果。本步骤的目的就是将计算机能识别的抽象数据模型与人眼能识别的计算机图形化界面进行匹配。

需要注意的是,计算机只有在首次存储数据值的时候才会在内存中创建一个内存地址,然后将该内存地址进行缓存,后续再使用同一内存地址的时候,直接访问该内存地址的缓存即可,不会再创建新的内存地址,故此也可以描述为将运行结果写入到内存缓存中的抽象数据模型。

s40,将解析后的抽象数据模型与图形化界面进行映射,使得抽象数据模型中的运行结果映射为图形化界面中的配置对象。

作为一种举例,具体操作时,对解析后的抽象数据模型进行深层遍历,并判断遍历到的每一个运行结果是否为图形化界面所支持的配置对象(或称为调整对象,或者配置项),如果是支持的配置对象,则基于当前运行结果进行图形化界面的渲染,渲染完图形化界面后,再根据抽象数据模型中配置的交互事件进行人机交互界面的事件响应与绑定(事件绑定),以达到图形化界面调整技术参数后,抽象数据模型中与之对应的运行结果进行同步更改的效果。

例如,遍历到当前的运行结果为顶部标题栏的颜色,判断出颜色是图形化界面支持的配置对象,则渲染出一个图形化的颜色调整框,并将该颜色调整框的数据绑定到当前的运行结果(即顶部标题栏的颜色)。

又例如,遍历到当前的运行结果为工具栏的大小,判断出是图形化界面支持的配置对象,则渲染出一个数值类型的大小调整框,并将该大小调整框的数据绑定到当前的运行结果(即工具栏的大小)。

需要注意的是,图形化界面所支持的配置对象有限,抽象数据模型中的有些运行结果可能是图形化界面不支持的配置对象,此时则忽略掉该运行结果。也就是说,当遍历到某个运行结果并判断出其不是图形化界面所支持的配置对象时,则忽略掉该运行结果,并继续遍历。

判断是否为图形化界面所支持的配置对象,判断依据是穷举目前软件系统所支持的调整对象,得到记录了所有支持的调整对象的穷举列表,然后再拿遍历到的运行结果去穷举列表中进行查找,如果存在则视为支持,如果不存在则视为不支持。穷举列表中的运行结果会根据软件系统所能提供的功能项进行动态增加。

在步骤s40执行完毕后,用户已经能根据抽象数据模型复原出的人机交互界面操作现代软件系统,并完成需要的业务功能。如果用户通过人机交互界面调整软件系统的布局、颜色、显示主题、文字大小等等类似能被抽象数据模型所枚举的配置项后,将触发软件系统的文件写入本地终端或持久化到云服务器中,从而实现用户下次打开该软件系统,或者访问另外的软件系统时,在当前软件系统调整后的配置项能同步或复原到其他的软件系统中。

需要注意的是,为了确保软件系统的容错能力,每一个软件系统都会提供自己默认的配置项,以确保在没有抽象数据模型或者抽象数据模型中不包含的情况下,软件系统能正常使用不会出现错误。

应用举例

举例1:用户根据自己的喜好更改a软件系统的人机交互界面

本举例中,以a软件系统中的“发现”页面为例,动态改变“发现”页面可展示的功能点。例如,目前的“发现”页面可展示的功能点有“视频号”、“扫一扫”、“摇一摇”、“看一看”“小程序”等等,假设某用户想更改目前的“发现”页面所展示的功能点,即更改该页面布局,例如只显示“扫一扫”、“小程序”这2个功能点,其他的功能点都不要展示(即隐藏起来),则a软件系统执行上述步骤s20-s40后,可以通过用户设置然后控制“发现”页面的显示与隐藏,当设置成功后,在“发现”页面即可仅展示“扫一扫”、“小程序”这2个功能点。也就是说,当该用户以后在本手机中登录a时“发现”页面都会是仅展示“扫一扫”、“小程序”这2个功能点。而且,当用户换另外一个手机登录a时,“发现”页显示的功能点也会是该用户在上一个手机中设置的“发现”页面的显示布局。

需要注意的是,应用本发明方法并不是增加或删减软件系统的原有功能项,而仅是改变原软件系统的页面布局,而且针对的是可调整的功能点(功能项),也就是针对于可调整的功能项可隐藏可显示,而针对于不可调整项则只能是保留原布局。例如a的“发现”页面的“小程序”是不可调整项,只能保留a软件系统的原有布局,即显示。

举例2:用户将a软件系统的人机交互界面无缝迁移到b软件系统中

a与b两个社交软件都隶属于c公司,但两个软件则分布在a事业部与b事业部,现在c公司需要实现将用户a软件系统的人机交互界面同步到b软件系统中,或者b同步到a中。实现方式如下:

1.c公司召集a和b两个软件系统的总架构师进行讨论,约定一个双方软件系统都能支撑与接受的功能清单(例如,都有联系人列表、都有个人设置功能、都存在暗色亮色主题、都拥有支付功能等等)。

2.根据该功能清单,使用抽象数据模型的方式将该清单中的项目进行抽象化描述,使其最终输出一个两个社交软件都能支持与识别的一个抽象数据模型。

3.将抽象数据模型交给a软件与b软件两个开发团队,两个团队的开发人员根据抽象数据模型中的模型项进行功能对齐开发(即前述步骤s20-s40处理),优选在此过程中进行容错处理,使其保障如果抽象数据模型中没有该模型项的时候软件也能正常运行。

4.当用户在a软件中将软件系统风格设置为暗色模式后,a软件将调整后的抽象数据模型立即同步到c公司的云服务器中,并与当前登录账号进行绑定。

5.当用户在登录b软件系统时,点击登录后,b软件会使用当前登录用户的账号去c公司的云服务器上获取该用户的抽象数据模型。

6.将获取到的抽象数据模型与b软件本身进行同步,发现抽象数据模型中软件系统的主题风格调整为了暗色模式,则b软件系统将b的图形化界面风格调整为暗色模式。

对于抽象数据模型中约定的功能点,在多个软件系统中进行同步的时候,必定会遇到有些功能点在有些软件系统中不存在的情况,但是本案的重点是在驱动多个软件系统界面协同变化,而不是多个软件系统功能的协同变化(功能是软件系统的原有设计,非原开发人员也没办法改变),因此这个问题的存在并不影响本发明方法的应用。软件系统会因为要解决的问题不同,有的功能也会不同,类似于word重点解决文档排版的问题,excel重点解决表格的问题,但是word、excel都会有操作栏、菜单栏、工具栏、标题栏,只是这些对象中各自的填充功能不同。对于不支持的调整项目,软件系统在开发时就需要去处理容错能力,对于没有的功能项要么忽略,要么给予用户图形化的提示。从现代企业的软件系统架构的顶层出发,在一个集团内部会有不同分公司,各分公司负责各软件系统的研发工作,各软件系统隶属于集团,从集团顶部出发定义各软件系统的统一抽象数据模型,使得该抽象数据模型能在各分公司的软件系统中进行软件系统界面的同步变化,达到一个用户只需要在集团内任意软件系统中进行了图形化界面系统的调整后,则能同步到集团内其他任意软件系统中。

本质上讲,本发明上述方法也不限于只在同一集团的多个软件系统中应用,基于数据模型驱动多种软件系统界面变化。如果能够约定一个功能清单,并将基于该功能清单得到的抽象数据模型存储云服务器以便于其他软件系统可获取,理论上讲本发明方法也可以应用在不属于同一集团的多个软件系统。

请参阅图2,本实施例中同时提供了一种基于数据模型驱动多种软件系统界面变化的系统,包括抽象化描述模块21、加载模块22、解析模块23和映射模块24。

其中,抽象化描述模块21被配置为对人机交互界面进行抽象化描述,并存储到抽象数据模型中,并将抽象数据模型存储到云服务器。

其中,加载模块22被配置为软件系统加载所述抽象数据模型,将抽象数据模型缓存于用户计算机内存中。

其中,解析模块23被配置为当抽象数据模型加载成功后,在软件系统中解析抽象数据模型,使得抽象数据模型中的表达式代码在软件系统运行环境中的运行结果写入到抽象数据模型中。

其中,映射模块24被配置为将解析后的抽象数据模型与图形化界面进行映射,使得抽象数据模型中的运行结果映射为图形化界面中的配置对象。

在其他方案中,上述系统还可以包括实时渲染模块,被配置为获取用户在图形化界面的配置数据,并基于变化后的抽象数据模型进行实时渲染,并展示出渲染后的人机交互界面。

本系统是基于图1所示方法相同的发明构思进行的,因此本系统未描述之处请参见前述方法中的相应描述。

通过本发明方法或系统,一方面,用户可以通过图形化界面配置的方式更改抽象数据模型,即更改人机交互界面的呈现方式,而无需依赖于专业的软件开发人员编写新的代码,既可以实现用户对人机交互界面进行个性化设置,又为用户提供了极大的便利。另一方面,通过将抽象数据模型存储于云服务器中,当其他软件系统想用使用某种软件系统的人机交互界面时,就可以从云服务器中获取该抽象数据模型,基于该抽象数据模型进行渲染即可实现一种软件系统的人机交互界面无缝迁移到其他软件系统中。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1