发明内容
本发明的目的旨在至少解决所述技术缺陷之一。
为此,本发明的目的在于提出一种应用程序的开发装置及方法,以及一种应用程序的控制装置及方法,通过采用面向数据的编程方式,使一切业务逻辑及用户操作均以操作数据对象为目的,应用程序开发者只需对业务逻辑所对应的数据对象进行描述并维护,降低开发者开发的技术门槛,节省开发时间和开发成本,在应用程序运行时减少数据传输,节省时间和网络带宽。
为达到所述目的,本发明第一方面的实施例公开了一种应用程序的开发装置,包括:界面控制层模块、数据层模块和控制层模块,其中,所述界面控制层模块,用于控制应用程序的界面;所述数据层模块,用于存储并维护所述应用程序的数据;所述控制层模块,用于接收所述应用程序的开发者所生成的逻辑控制列表,并通过所述逻辑控制列表对所述界面控制层模块和所述数据层模块进行控制,其中,所述逻辑控制列表包括所述应用程序的界面与数据之间的逻辑关系。
根据本发明实施例的应用程序的开发装置,通过采用面向数据的编程方式,使一切业务逻辑及用户操作均以操作数据对像为目的,则应用程序开发者不再需要设计维持数据与界面统一的应用程序框架,只需对业务逻辑所对应的数据对象进行描述并维护,降低了应用程序开发者开发的技术门槛,节省了开发时间和开发成本。
在本发明的一个实施例中,所述逻辑控制列表包括界面事件、控制指令和数据事件之间的逻辑关系。
在本发明的一个实施例中,所述界面控制层模块和所述控制层模块之间通过界面事件和数据事件进行交互,所述控制层模块通过所述控制指令对所述数据层模块进行控制,并监测所述数据层模块中数据的变动,以及根据所述数据层模块中数据的变动生成对应的数据事件。
在本发明的一个实施例中,所述逻辑控制列表由所述应用程序的开发者面向所述应用程序中业务逻辑对应的数据进行编写。
本发明第二方面的实施例提出了一种应用程序的开发方法,包括以下步骤:接收开发者发送的应用程序的界面模板、数据和逻辑控制列表;分别将所述界面模板、数据和逻辑控制列表发送中界面控制层、数据层和控制层;所述控制层根据所述应用程序的初始状态控制所述界面控制层显示初始界面;所述控制层通过所述逻辑控制列表对所述界面控制层和所述数据层进行控制,其中,所述逻辑控制列表包括所述应用程序的界面与数据之间的逻辑关系。
根据本发明实施例的应用程序的开发方法,通过采用面向数据的编程方式,使一切业务逻辑及用户操作均以操作数据对像为目的,则应用程序开发者不再需要设计维持数据与界面统一的应用程序框架,只需对业务逻辑所对应的数据对象进行描述并维护,降低了应用程序开发者开发的技术门槛,节省了开发时间和开发成本。
在本发明的一个实施例中,所述逻辑控制列表包括界面事件、控制指令和数据事件之间的逻辑关系。
在本发明的一个实施例中,所述界面控制层和所述控制层之间通过界面事件和数据事件进行交互,所述控制层通过所述控制指令对所述数据层进行控制,并监测所述数据层中数据的变动,以及根据所述数据层中数据的变动生成对应的数据事件。
在本发明的一个实施例中,所述逻辑控制列表由所述应用程序的开发者面向所述应用程序中业务逻辑对应的数据进行编写。
本发明第三方面的实施例提出了一种应用程序的控制装置,包括界面控制层模块、数据层模块和控制层模块,其中,所述界面控制层模块,用于控制应用程序的界面,接收用户对所述界面的输入指令并根据所述输入指令生成界面事件,以及根据所述控制层模块生成的数据事件对所述应用程序的界面进行对应的控制操作;所述数据层模块,用于存储并维护所述应用程序的数据,并根据所述控制层模块的控制指令对所述数据进行对应的控制操作;所述控制层模块,用于根据所述应用程序对应的逻辑控制列表和所述界面控制层模块发送的界面事件生成对应的控制指令,并将所述对应的控制指令发送至所述数据层模块,以及根据所述逻辑控制列表和所述界面事件生成对应的数据事件,并将所述数据事件发送至所述界面控制层模块。
根据本发明实施例的应用程序的控制装置,通过采用面向数据的编程方式,使一切业务逻辑及用户操作均以操作数据对像为目的,则应用程序开发者不再需要设计维持数据与界面统一的应用程序框架,只需对业务逻辑所对应的数据对象进行描述并维护,在应用程序运行时,数据传输只基于更新数据,减少了对于网络带宽的消耗,节省了时间。
在本发明的一个实施例中,所述逻辑控制列表包括界面事件、控制指令和数据事件之间的逻辑关系。
在本发明的一个实施例中,所述数据事件包括所述数据层模块根据所述控制指令生成的更新数据,所述界面控制层模块根据所述更新数据对预存的界面模板进行重新渲染。
在本发明的一个实施例中,所述逻辑控制列表由所述应用程序的开发者面向所述应用程序中业务逻辑对应的数据进行编写。
在本发明的一个实施例中,所述控制装置运行在云端服务器和客户端。
本发明第四方面实施例提出了一种应用程序的控制方法,包括以下步骤:界面控制层向用户显示应用程序的界面,并接收用户对所述界面的输入指令;所述界面控制层根据所述输入指令生成界面事件,并将所述界面事件发送至控制层;所述控制层根据所述应用程序对应的逻辑控制列表和所述界面控制层发送的界面事件生成对应的控制指令,并将所述对应的控制指令发送至所述数据层;所述数据层执行所述控制指令以更新所述数据层中的数据;所述控制层根据所述更新的数据、所述逻辑控制列表和所述界面事件生成对应的数据事件,并将所述数据事件发送至所述界面控制层;所述界面控制层根据所述数据事件对所述应用程序的界面进行对应的控制操作。
根据本发明实施例的应用程序的控制方法,通过采用面向数据的编程方式,使一切业务逻辑及用户操作均以操作数据对像为目的,则应用程序开发者不再需要设计维持数据与界面统一的应用程序框架,只需对业务逻辑所对应的数据对象进行描述并维护,在应用程序运行时,数据传输只基于更新数据,减少了对于网络带宽的消耗,节省了时间。
在本发明的一个实施例中,所述逻辑控制列表包括界面事件、控制指令和数据事件之间的逻辑关系。
在本发明的一个实施例中,所述界面控制层根据所述数据事件对所述应用程序的界面进行对应的控制操作进一步包括:所述界面控制层调用所述数据事件对应的界面模板;所述界面控制层根据所述数据事件对所述界面模板进行重新渲染。
在本发明的一个实施例中,所述逻辑控制列表由所述应用程序的开发者面向所述应用程序中业务逻辑对应的数据进行编写。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,需要说明的是,除非另有规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解所述术语的具体含义。
下面参考图1至图4描述本发明实施例的应用程序的开发装置及开发方法。
如图1所示,本发明第一方面实施例的应用程序的开发装置,包括:界面控制层模块110、数据层模块120和控制层模块130。
具体地,界面控制层模块110用于控制应用程序的界面,数据层模块120用于存储并维护所述应用程序的数据。控制层模块130用于接收应用程序的开发者所生成的逻辑控制列表,并通过逻辑控制列表对界面控制层模块110和数据层模块120进行控制,其中,逻辑控制列表包括应用程序的界面与数据之间的逻辑关系。
具体地,界面控制层模块110和控制层模块130之间通过界面事件和数据事件进行交互,界面控制层模块110和控制层模块之间的交互是通过实时性的双向数据通道,控制层模块130通过控制指令对数据层模块120进行控制,并监测数据层模块110中数据的变动,以及根据数据层模块120中数据的变动生成对应的数据事件。其中,数据的变动可以是因为用户操作等的界面事件引发的,也可以是由其他数据变动而引起的变动。
与现有的应用程序的开发过程的区别在于,应用程序的开发者不再需要为接口进行设计,而只需编写逻辑控制列表。逻辑控制列表包括界面事件、控制指令和数据事件之间的逻辑关系,逻辑控制列表由应用程序的开发者面向应用程序中业务逻辑对应的数据进行编写。如图2所示,控制层根据逻辑控制列表,对数据事件和界面事件进行管理。逻辑控制列表是开发人员编写的处理界面事件与数据事件的处理过程,在处理界面事件时,开发人员将关注于当前事件(如点击某个按钮、拖拽某个按钮等)将触发哪些数据的变动,并将该数据变动告知数据层,使数据层中的数据发生相应的变化,在处理数据事件时,开发人员将关注于当前数据所对应的界面是哪一部份,并将对应的模版及数据告知界面层,使界面层重新渲染模版更新界面。
根据本发明实施例提供的应用程序的开发装置,通过采用面向数据的编程方式,使一切业务逻辑及用户操作均以操作数据对像为目的,则应用程序开发者不再需要设计维持数据与界面统一的应用程序框架,只需对业务逻辑所对应的数据对象进行描述并维护,降低了应用程序开发者开发的技术门槛,节省了开发时间和开发成本。
如图3所示,本发明第二方面实施例的应用程序的开发方法,包括以下步骤:
S301:接收开发者发送的应用程序的界面模板、数据和逻辑控制列表。
其中,逻辑控制列表包括界面事件、控制指令和数据事件的逻辑关系。逻辑控制列表由应用程序的开发者面向应用程序中业务逻辑对应的数据进行编写。如图2所示,界面控制层和控制层之间通过界面事件和数据事件进行交互,控制层通过控制指令对数据层进行控制,并监测数据层中数据的变动,以及根据数据层中数据的变动生成对应的数据事件。其中,数据的变动可以是因为用户操作等的界面事件引发的,也可以是由其他数据变动而引起的变动。
本发明中应用程序开发者不再需要为数据层和界面层各自设计接口以维持数据与界面数据的实时性,而只需提供逻辑控制列表。即,数据事件与界面事件的代码逻辑是分离的。如图4所示,某时钟应用程序中,用户想要将时间从8:00更改为9:00,在程序界面中,为用户提供了两种更改时间的方法:可以直接将光标移动到时钟表示“时”的08处,输入9;也可以按+-键将8调整到9。这两种方法在界面事件的代码逻辑是不一样的,但在数据事件的逻辑上都是一样的,即将“时间”这一参数的值由8:00改为9:00。开发人员在处理界面事件时只需关注该事件对数据层所造成的影响,并将该事件影响通知数据层修改数据。在处理数据事件时,只需关系该数据所对应的界面部份,并告知界面层数据与模板的对应关系,使界面层重新渲染模版并更新界面。
S302:分别将界面模板、数据和逻辑控制列表发送至界面控制层、数据层和控制层。
S303:控制层根据应用程序的初始状态控制界面控制层显示初始界面。
S304:控制层通过逻辑控制列表对界面控制层和数据层进行控制,其中,逻辑控制列表包括应用程序的界面与数据之间的逻辑关系。
根据本发明实施例提供的应用程序的开发方法,通过采用面向数据的编程方式,使一切业务逻辑及用户操作均以操作数据对像为目的,则应用程序开发者不再需要设计维持数据与界面统一的应用程序框架,只需对业务逻辑所对应的数据对象进行描述并维护,降低了应用程序开发者开发的技术门槛,节省了开发时间和开发成本。
下面参考图5描述根据本发明实施例的应用程序的控制装置。在用户使用应用程序时,用户通过在用户界面进行操作来向应用程序传递信息。
如图5所示,本发明第三方面实施例的应用程序的控制装置,包括:界面控制层模块510、数据层模块520和控制层模块530。
具体地,界面控制层模块510用于控制应用程序的界面,接收用户对所述界面的输入指令并根据所述输入指令生成界面事件,以及根据控制层模块530生成的数据事件对应用程序的界面进行对应的控制操作。控制层模块530用于根据应用程序对应的逻辑控制列表和界面控制层模块510发送的界面事件生成对应的控制指令,并将对应的控制指令发送至数据层模块520,以及根据逻辑控制列表和界面事件生成对应的数据事件,并将数据事件发送至界面控制层模块510。其中,逻辑控制列表包括界面事件、控制指令和数据事件之间的逻辑关系。逻辑控制列表由应用程序的开发者面向应用程序中业务逻辑对应的数据进行编写。数据层模块520用于存储并维护应用程序的数据,并根据控制层模块530的控制指令对数据进行对应的控制操作。逻辑控制列表使数据发布/订阅机制实现自动化和随动反馈化,界面事件发生后,可自动触发数据的更新/修改事件,数据层将做出自动响应并写入最新数据。数据事件与界面事件的代码逻辑是分离的,如图4所示,用户想要将时间从8:00更改为9:00,在程序界面中,为用户提供了两种更改时间的方法:可以直接将光标移动到时钟表示“时”的08处,输入9;也可以按+-键将8调整到9。这两种方法在界面事件的代码逻辑是不一样的,但在数据事件的逻辑上都是一样的,即将“时间”这一参数的值由8:00改为9:00。开发人员在处理界面事件时只需关注该事件对数据层所造成的影响,并将该事件影响通知数据层修改数据。在处理数据事件时,只需关系该数据所对应的界面部份,并告知界面层数据与模板的对应关系,使界面层重新渲染模版并更新界面。
在本发明的一个实施例中,数据事件包括数据层模块520根据控制指令生成的更新数据,界面控制层模块510根据更新数据对预存的界面模板进行重新渲染。在现有技术中,界面层提供接口供应用程序访问数据,为保证应用程序正常工作,并及时向用户返回程序运行结果,必须保证网络连接的稳定性和通畅性,以实时同步客户端和云端服务器的数据,在这个前提下,云端服务器必须保证同时维护多个连接数和接收新创建连接的性能,并对各网络连接进行管理,而在实际应用中,为实现某些连接,会出现需要引入多种第三方插件、代理服务器,并导致插件不兼容、代理嵌套等影响用户使用的问题。当多个用户同时在线时,必须设置防止死锁等机制来保证用户请求的数据为最新数据;当多个用户需要进行操作,对同一数据进行写入时,也必须避免脏数据对数据库的写覆盖。而在本发明实施例中,控制装置运行在云端服务器和客户端,界面控制层模块和数据层模块之间通过实时数据通道相连接。数据在数据层模块520和界面控制层模块510中的传递与交互,只受控制层模块530控制,控制层模块530也只需按照逻辑控制列表进行控制,因而可以保证数据管理、传输的高效性。数据交互完成后,界面控制层模块510仅根据更新后的数据对界面模块进行重新渲染,而不考虑原有数据,以及界面模块的原有框架和格式,使得应用程序开发的标准化更容易实现。
根据本发明实施例的应用程序的控制装置,通过建立实时的数据通道,建立实时与数据层交互的应用程序,通过采用面向数据的编程方式,使一切业务逻辑及用户操作均以操作数据对像为目的,则应用程序开发者不再需要设计维持数据与界面统一的应用程序框架,只需对业务逻辑所对应的数据对象进行描述并维护,在应用程序运行时,数据传输只基于更新数据,减少了对于网络带宽的消耗,节省了时间。
如图6所示,本发明第四方面实施例的应用程序的控制方法,包括以下步骤:
S601:界面控制层向用户显示应用程序的界面,并接收用户对界面的输入指令。
S602:界面控制层根据输入指令生成界面事件,并将界面事件发送至控制层。
当用户对应用程序的界面做出点击、双击、拖拽等操作时,界面控制层根据该操作生成界面事件,并将界面事件发送至控制层。
S603:控制层根据应用程序对应的逻辑控制列表和界面控制层发送的界面事件生成对应的控制指令,并将对应的控制指令发送至数据层。
其中,逻辑控制列表包括界面事件、控制指令和数据事件之间的逻辑关系。逻辑控制列表由应用程序的开发者面向应用程序中业务逻辑对应的数据进行编写。
S604:数据层执行控制指令以更新数据层中的数据。
S605:控制层根据更新的数据、逻辑控制列表和界面事件生成对应的数据事件,并将数据事件发送至界面控制层。
S606:界面控制层根据数据事件对应用程序的界面进行对应的控制操作。
具体的,界面控制层调用数据事件对应的界面模板,然后,界面控制层根据数据事件对界面模板进行重新渲染。界面控制层仅基于更新数据进行重新渲染,而不考虑原有数据,以及界面模块的原有框架和格式,使得应用程序开发的标准化更容易实现。
在本发明的一个实施例中,在用户做出操作后,系统响应并向用户做出反馈的过程如图7所示:
S701:在界面控制层,用户界面事件发生。
用户界面设计时,应为用户操作提供界面事件的模板,例如当用户进行点击某个按钮或拖拽某个按钮等操作时,界面控制层对这些界面事件进行捕捉。
S702:对界面事件进行处理。
对界面事件进行解析,解析过程按照开发者预先编写的逻辑控制列表。例如当用户在浏览电子书按右方向键时,解析为“看下一页”。当用户点击“发表回帖”的按钮时,把用户在输入框输入的内容解析为用户的回帖内容,并将该内容作为更新数据上传至服务器。
S703:检测是否需要修改/更新数据对象。
根据界面事件的解析结果,在需要的时候,对数据对象进行修改或更新。例如,在用户A在某论坛的“音乐讨论区”发表回帖后,如果判断为用户A不具有在该板块发表回帖的权限,则返回出错提示;如果用户A具有在该板块发表回帖的权限,则需要建立“用户A在音乐讨论区的新回帖”这一数据对象。
S704:由数据对象发生数据事件。
例如,根据“用户A在音乐讨论区的新回帖”这一数据对象,触发“在数据库里音乐讨论区的部分增加用户A的回帖”的数据事件。
S705:对数据事件进行处理。
处理过程中,可能会发生对其他的数据对象的修改。例如,假设该论坛具有了相应功能,“在数据库里音乐讨论区的部分增加用户A的回帖”这一数据事件,将会引发以下数据对象的修改或更新:将“音乐讨论区”的“最新回复”修改为用户A的回帖;为用户A的论坛币加1;向所有设置“关注用户A的发帖”的用户发送提醒“您的朋友用户A在音乐讨论区发表了回复”。
S706:对界面对象进行修改/更新。
根据对数据事件的处理结果,对用户界面进行修改或更新。例如,在用户A在某论坛的“音乐讨论区”发表回帖后,如果判断为用户A不具有在该板块发表回帖的权限,则用户界面显示“对不起,您不具备在本讨论区发表回复的权限”;如果用户A具有在该板块发表回帖的权限,则用户界面向用户显示回帖已更新后的帖子。
根据本发明实施例的应用程序的控制方法,通过建立实时的数据通道,建立实时与数据层交互的应用程序,通过采用面向数据的编程方式,使一切业务逻辑及用户操作均以操作数据对像为目的,则应用程序开发者不再需要设计维持数据与界面统一的应用程序框架,只需对业务逻辑所对应的数据对象进行描述并维护,在应用程序运行时,数据传输只基于更新数据,减少了对于网络带宽的消耗,节省了时间。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对所述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。