CN112395117B - 一种数据处理方法、系统和存储介质 - Google Patents
一种数据处理方法、系统和存储介质 Download PDFInfo
- Publication number
- CN112395117B CN112395117B CN202110078885.7A CN202110078885A CN112395117B CN 112395117 B CN112395117 B CN 112395117B CN 202110078885 A CN202110078885 A CN 202110078885A CN 112395117 B CN112395117 B CN 112395117B
- Authority
- CN
- China
- Prior art keywords
- service
- data
- layer
- processing
- user interface
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请实施例提供一种数据处理方法、系统和存储介质。其方法包括:将GUI应用程序分为用户界面层、用户界面管控层、业务处理层、网络层和数据处理层,通过用户界面层生成业务所对应的窗体和交互控件;通过业务处理层生成业务的多个业务对象,并将其注入至用户界面管控层;通过用户界面管控层收集窗体、交互控件的输入数据和隐藏数据,并调用业务处理层,以及根据业务处理层返回的业务展示数据信息刷新业务对应的窗体;通过业务处理层调用网络层,以获取所述业务所对应的业务原始数据信息,并对业务原始数据信息进行格式转换处理以得到业务展示数据信息,并返回至用户界面管控层。本申请实施例提高GUI应用程序的扩展性,方便维护。
Description
技术领域
本申请涉及智慧城市技术领域,具体涉及一种数据处理方法、系统和存储介质。
背景技术
QT框架基于C++语言开发,可用于linux、windows系统下的基于C/S(Client/Server,客户端/服务器)架构的GUI(Graphical User Interface,图形用户界面)应用程序。一个GUI应用程序常常由大量的窗体组成,例如登录窗体、用户管理窗体等。这些窗体覆盖了GUI应用程序所需要的所有逻辑。在基于QT框架的开发模式中,GUI应用程序的功能往往通过在业务相关的窗体下直接编制代码进行功能实现,再通过窗体构造或属性进行参数传递来组织各个窗体形成整体的业务逻辑,这使得业务、数据、窗体代码交织在一起,窗体展示和业务处理代码混杂,维护和扩展十分困难。
发明内容
本申请实施例提供一种数据处理方法、系统和存储介质,可提高GUI应用程序的扩展性,方便对GUI应用程序的维护。
本申请实施例提供了一种数据处理方法,应用于数据处理系统中,数据处理系统包括用户界面层、用户界面管控层、业务处理层、网络层和数据处理层,数据处理方法包括:
通过用户界面层生成业务所对应的窗体,以及窗体中的交互控件,其中,窗体派生于父窗体,父窗体对应的窗体类为窗体基类;
通过业务处理层生成业务的多个业务对象,并将多个业务对象注入至用户界面管控层;
通过用户界面管控层收集窗体或者交互控件的输入数据和隐藏数据,并确定处理输入数据和隐藏数据的业务对象,根据业务对象调用业务处理层,以使业务处理层进行业务处理;
通过业务处理层调用网络层,以从服务器中获取业务对象所需的业务原始数据信息,并根据业务原始数据信息调用数据处理层进行格式转换处理,以得到业务展示数据信息;
通过业务处理层将业务展示数据信息返回至用户界面管控层;
根据业务展示数据信息通过用户界面管控层刷新业务所对应的窗体。
本申请实施例还提供了一种数据展示系统,包括用户界面层、用户界面管控层、业务处理层、网络层和数据处理层:
用户界面层,用于生成业务所对应的窗体,以及窗体中的交互控件,其中,窗体派生于父窗体,父窗体对应的窗体类为窗体基类;
业务处理层,用于生成业务的多个业务对象,并将多个业务对象注入至用户界面管控层;
用户界面管控层,用于收集窗体或者交互控件的输入数据和隐藏数据,并确定处理输入数据和隐藏数据的业务对象,根据业务对象调用业务处理层,以使业务处理层进行业务处理;
业务处理层,还用于通过业务处理层调用网络层,以从服务器中获取业务对象所需的业务原始数据信息,并将业务原始数据信息发送至数据处理层进行格式转换处理,以得到业务展示数据信息;
业务处理层,还用于将业务展示数据信息返回至用户界面管控层;
用户界面管控层,还用于根据业务展示数据信息刷新业务所对应的窗体。
本申请实施例还提供了一种电子设备,所述电子设备包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述处理器和所述存储器相连接,所述一个或多个计算机程序被存储于所述存储器中,并配置为由所述处理器执行上述所述的数据处理方法。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一种数据处理方法中的步骤。
本申请实施例通过将GUI应用程序对应的数据处理系统分为用户界面层、用户界面管控层、业务处理层、网络层和数据处理层,并通过不同层来实现不同的功能,例如,通过用户界面层生成业务所对应的窗体,以及窗体中的交互控件;通过业务处理层生成业务的多个业务对象,并将多个业务对象注入至用户界面管控层;通过用户界面管控层收集窗体或者交互控件的输入数据和隐藏数据,并根据输入数据和隐藏数据调用业务处理层,以使业务处理层进行业务处理,以及根据业务处理层返回的业务展示数据信息刷新业务所对应的窗体;根据所述输入数据和隐藏数据通过业务处理层调用网络层,以从服务器中获取所述业务所对应的业务原始数据信息,并将所述业务原始数据信息发送至数据处理层进行格式转换处理,以得到业务展示数据信息,并将业务展示数据信息返回至用户界面管控层。相对于QT框架中的将业务、数据、窗体代码交织在一起的实现方式,本申请实施例将QT框架实现的每个业务分为多层,利用不同层实现业务的不同功能,层级间通过调用的方式来实现,隔离了窗体/界面、业务处理、网络、数据处理,不同层可独立实现,各层之间相互不影响,大大提高GUI应用程序的扩展性,方便对GUI应用程序的维护。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据处理系统的示意图;
图2是本申请实施例提供的数据处理方法的流程示意图;
图3是本申请实施例提供的用户界面层的示意图;
图4是本申请实施例提供的用户界面管控层的示意图;
图5是本申请实施例提供的业务处理层的示意图;
图6是本申请实施例提供的网络层和数据处理层的示意图;
图7是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种数据处理方法、系统、电子设备和存储介质。本申请实施例提供的数据处理系统,可以集成在电子设备中。该电子设备可以是一个电子设备,也可以是多个电子设备。该电子设备包括但不限于智能手机、平板电脑、笔记本电脑、智能电视、智能机器人、个人计算机(PC,Personal Computer)、可穿戴设备、服务器计算机,等等。
在QT框架中,实现GUI应用程序所需要的所有业务逻辑的代码直接写在窗体所对应的用户界面(UserInterface,UI)的代码中,如写在窗体中的控件的点击事件中。比如添加信息,在添加界面中,点击添加控件(如添加按钮)之后,添加信息所对应的代码是跟添加界面的代码是一起的。比如点击添加按钮之后,对应的业务逻辑中,包括:访问服务器,服务器会把对应的数据(如是否添加成功,或者添加成功之后的数据)返回,更新界面上各种列表的数据等在添加控件的点击事件里面。而添加控件的点击事件在对应的添加界面对应的代码中。如此,使得业务、数据、窗体代码交织在一起,窗体展示和业务处理代码混杂,维护和扩展十分困难。例如,若需要修改添加信息的业务逻辑,需要修改添加界面中对应的代码,需要对添加界面中所有的代码进行测试,维护和扩展十分不便。另外,当添加信息的业务逻辑出现问题,则会导致点击添加控件之后,添加界面显示异常,如无法正常显示。
本申请实施例提供的数据处理方法、数据处理系统、装置、电子设备和存储介质,可通过对GUI应用程序对应的每个业务分为多层,利用不同层实现业务的不同功能,层级间通过调用的方式来实现,隔离窗体/界面、业务处理、网络、数据处理,不同层可独立实现,各层之间相互不影响,大大提高GUI应用程序的扩展性,方便对GUI应用程序的维护。
请参阅图1,是本申请实施例提供的数据处理系统的示意图。该数据处理系统中的每个业务,都可分为用户界面层(UI层)、用户界面管控层、业务处理层、网络层和数据处理层。其中,每层的功能可通过一个电子设备实现,也可以通过多个电子设备实现,所有层实现的功能可以通过一个电子设备来实现,还可以通过多个电子设备来实现。优选地,本申请实施例以所有层实现的功能通过一个电子设备实现为例进行说明。
其中,本申请实施例中的业务可理解为在实现GUI应用程序中的某个功能模块。如登录业务(登录模块),可实现登录功能下所有的相关功能,如至少包括如下的功能:登录、注册、注册/登录失败时对应的操作等等。如在智慧交通领域中,实现设备管理业务(设备管理模块),其中,设备可以指某城市的某社区下所对应的多个摄像头设备,设备管理业务可实现设备管理下所有的相关功能,如至少包括如下的功能:设备(信息)的增加、设备(信息)的查看、设备(信息)的删除、设备(信息)的更改、设备拍摄的视频的获取/查看等等。其中,具体的业务可根据GUI应用程序实现的功能具体来确定,还可结合用户需求来确定。可以理解地,每个业务对应一个用户界面管控层、一个业务处理层、一个网络层和一个数据处理层。多个业务之间可相互独立(如多个功能模块开发时相互独立,互不影响),每个业务都设计有对应的接口,通过对应的接口实现对应多个业务之间的相互调用。
业务通过用户界面层进行承载,用户界面层提供了业务需要的各类交互界面,这些交互界面主要通过QT框架的所见即所得的静态布局方式,根据业务需求布局成实际的界面。例如,登录业务所对应的登录界面中包括登录用户名所对应的文本输入框、登录密码所对应的文本输入框、验证码所对应的文本输入框等,在登录界面中布局这些文本输入框,以形成实际的静态界面。
用户界面管控层,该层起到承上启下的作用,向上接收用户界面层中的各类交互信息,并根据交互信息调用业务处理层,以使得业务处理层进行对应的业务处理;接收业务处理层返回的数据(业务展示数据信息),并根据返回的数据(业务展示数据信息)刷新用户界面层显示的数据内容。
业务处理层,该层调用网络层从服务器端获取业务所需要的数据(业务原始数据信息),并在取回数据后发送至数据处理层进行数据转换、格式化等操作,形成能有好的在用户界面上展示的数据(业务展示数据信息)后,提供给用户界面管控层。
网络层,用于根据业务处理层的需求来访问服务器,接收服务器返回的数据(业务原始数据信息),并将服务器返回的数据返回至业务处理层。
数据处理层,对从业务处理层中输入的数据(业务原始数据信息)进行转换,使其符合用户界面显示的规范,例如,服务器端返回的数据中性别所对应的数据可能为1、2,而用户界面展示需要为“男”、“女”这样的数据(业务展示数据信息),数据处理层,就是将1、2分别对应到“男”、“女”后返回业务处理层。
上述数据处理系统将GUI应用程序分为多个不同的业务,每个业务分为多层(用户界面层、用户界面管控层、业务处理层、网络层和数据处理层)来实现,因此对应的代码也分布在每个不同的层级中,而非现有的将代码混杂在QT框架提供的静态页面中,隔离了窗体/界面、业务处理、网络、数据处理,大大提高GUI应用程序的扩展性,方便对GUI应用程序的维护。
以上对实现业务的各个层进行简单的介绍,下面将详细介绍每个层是如何实现具体的功能的,请参看下文中的方法实施例的描述。
图2是本申请实施例提供的数据处理方法的流程示意图,该数据处理方法应用于电子设备中,该数据处理方法包括如下步骤。
101,通过用户界面层生成业务所对应的窗体,以及窗体中的交互控件,其中,窗体派生于父窗体,父窗体对应的窗体类为窗体基类。
用户界面层负责基于QT框架实现GUI应用程序的界面布局,提供各类交互控件,其主要控件为窗体。需要注意的是,交互控件除了包括窗体外,还包括在窗体上的各类其他交互控件,如窗体上的各类按钮、文本框、选择框、下拉框等控件。通常一个业务可能会涉及多个窗体。将实现GUI应用程序的多个窗体作为子窗体,每个子窗体均从父窗体派生,其中,父窗体对应的窗体类为QT窗体的窗体基类。父窗体对应的窗体类中规定GUI应用程序的风格、样式等,使得继承父窗体的窗体类的子窗体具备对应的风格和样式,如此,GUI应用程序在风格、样式等方面是一致的。
其中,父窗体中包括用户界面资源池(也简写为UI资源池)和窗体样式池两个静态对象。其中,UI资源池主要存放各类图片句柄、图标句柄、字体句柄等资源,可理解地,GUI应用程序需要对一些图片、图标、字体等对象做一些操作,句柄可以简单理解为指向这些对象的指针;窗体样式池对象用来存放这些资源的组合关系以及实现GUI应用程序的风格、样式等的展示管理,例如,窗体/控件的边框大小、窗体贴图方式、可用/不可用状态展示方式等。其中,GUI应用程序的风格、显示等可通过类似Html的层叠样式表(Cascading StyleSheets,CSS)等来实现。
根据父窗体派生出多个子窗体;实例化子窗体;在每个子窗体被实例化后,加载UI资源池和窗体样式池中对应的数据,且只加载一次;当加载子窗体时,根据子窗体上的资源标识(如资源ID和/或资源名称等,可唯一识别对应的一个资源)到UI资源池中获取对应的资源,以得到各类控件;根据窗体样式池,对子窗体的风格、样式进行渲染,将渲染后的子窗体所对应的用户界面进行显示,以展示给用户。
如图3所示,根据用户界面的父窗体派生出业务所对应的多个子窗体,如子窗体1、子窗体2、......、子窗体N,其中,父窗体中还包括窗体样式池、UI资源池等。
102,通过业务处理层生成业务的多个业务对象,并将多个业务对象注入至用户界面管控层。
业务处理层主要用来实现业务所对应的业务逻辑。在该业务中会构建多个业务类,每个业务类包括对应的属性和多个不同的业务方法(其中,方法可理解为函数)。根据该业务类生成业务对象,即实例化该业务类,生成业务对象,如此,该业务对象中也包括对应的属性和多个不同的业务方法。有一些业务类属于操作类,它们可能没有设置对应的属性,但是设置有多个不同的业务方法。
该业务对象由业务处理层生成,被配置为继承(对应业务类的属性和)对应业务类的业务方法,当被调用对应的业务方法时,实现该业务方法所实现的业务功能。例如,在智慧交通领域中,某个机构如某城市的某社区下所对应的多个摄像头设备,那么对应的,可以将机构作为一个业务类,设备作为一个业务类,根据机构类生成机构对象,根据设备类生成设备对象。对于机构对象来说,机构对象包括多个业务方法,例如机构的删除方法、增加方法、更新方法、查询方法等等,当这些机构对象的方法被调用时,分别实现机构的删除、机构的增加、机构的更新、机构的查询等功能;对于设备对象来说,设备对象也包括多个业务方法,例如设备的删除方法、增加方法、更新方法、查询方法等等,当这些设备对象的方法被调用时,分别实现设备的删除、设备的增加、设备的更新、设备的查询等功能。可理解地,一个业务对象中可包括多个业务方法,或者一个业务对象中也可包括一个业务方法。其中,业务方法中还可引用其他的一个或者多个方法等。一般情况下,一个业务对象包括多个业务方法。
该业务对象由业务处理层生成,因为只有业务处理层知道需要调用哪些业务对象。即业务处理层根据业务的具体情况生成业务的多个业务对象,并将多个业务对象注入至用户界面管控层。其中,注入至用户界面管控层理解为将业务对象赋值给用户界面管控层,具体地,将业务对象赋值给用户界面管控层中的第一调度器,由该第一调度器保存至业务处理对象句柄池中。该业务对象由业务处理层生成并注入至用户界面管控层中为业务服务提供接口服务使用。
可以理解地,该业务对象由业务处理层来生成,而不是由用户界面管控层来生成,是为了隔离业务处理层和用户界面管控层,使得用户界面管控层无需关注业务实现,而业务处理层根据具体的业务实现来确定所需要使用的业务对象。另外,由于该业务对象已经由业务处理层来生成,用户界面管控层仅仅只需保存业务对象,就可直接使用该业务对象。
103,通过用户界面管控层收集窗体或者交互控件的输入数据和隐藏数据,并确定处理输入数据和隐藏数据的业务对象,根据业务对象调用业务处理层,以使业务处理层进行业务处理。
一个业务对应一个用户界面管控层,用户界面管控层包括第一调度器和业务处理对象句柄池,如图4所示。需要注意的是,一个用户界面管控层可包括多个第一调度器。其中,业务处理对象句柄池中包括从业务处理层中注入的多个业务对象以及多个业务对象句柄。
在一种情况下,步骤103,包括:通过第一调度器收集窗体或者交互控件的输入数据和隐藏数据,并根据输入数据和隐藏数据形成数据对象;通过第一调度器从业务处理对象句柄池的多个业务对象中,确定处理数据对象的目标业务对象;通过目标业务对象调用业务处理层,以使业务处理层进行业务处理。
在窗体中,包括多个交互控件,通过交互控件可输入一些数据,如登录窗体中的用户名和密码等输入控件等,可输入用户名和密码。交互控件还包括其他类型的控件,如选择控件、列表控件等。
通过用户界面管控层的第一调度器来收集窗体或者交互控件的输入数据和隐藏数据。其中,输入数据是响应用户操作在交互控件中输入的数据,或者是响应对应的事件以获取对应的业务数据而展示在对应的交互控件上的数据。隐藏数据指的是不会在窗体或者交互控件上显示的数据,而这些数据在业务处理时可能会用到。如窗体ID,交互控件ID等信息。例如,登录窗体中的登录窗体ID、登录时间等信息,无需展示在对应的登录窗体上,而登录时间等信息则需要将其保存至服务器。
收集了窗体或者交互控件的输入数据和隐藏数据后,根据输入数据和隐藏数据形成数据对象。可以理解地,业务对象的属性会绑定到对应的交互控件上,以形成对应的绑定关系。例如,登录用户名会绑定在UI层上的一个叫登录用户名的txtbox上,密码会绑定在UI层上的一个叫密码的txtbox上等,即登录用户名在哪个交互控件上输入,密码在哪个交互控件上输入等,将它们之间的对应关系进行绑定,以形成对应的绑定关系。当获取交互控件的输入数据和隐藏数据(如交互控件ID)后,会根据绑定关系,来确定输入数据和隐藏数据所归属的业务对象,即会确定哪些交互控件上的输入数据和隐藏数据是属于哪个业务对象的;将归属于同一个业务对象的输入数据和隐藏数据形成一个数据对象;或者按照其他的规则来将输入数据和隐藏数据形成一个数据对象。将归属于同一个业务对象的输入数据和隐藏数据形成一个数据对象,可以理解地,将归属于同一个业务对象的输入数据和隐藏数据进行封装,以形成一个数据对象。
在一种情况下,用户界面管控层还包括界面数据组合逻辑,如图4所示。一个用户界面管控层中可包括多个界面数据组合逻辑。其中,通过第一调度器收集窗体或者交互控件的输入数据和隐藏数据,并根据输入数据和隐藏数据形成数据对象的步骤,包括:通过第一调度器收集窗体或者交互控件的输入数据和隐藏数据;通过界面数据组合逻辑对输入数据和隐藏数据进行合法性验证;若合法,根据输入数据和隐藏数据形成数据对象。
其中,界面数据组合逻辑中包括了对输入数据和隐藏数据进行各种合法性验证的逻辑组合。例如,验证登录的用户名是否为预设的格式,如是否为邮箱、电话号码或者其他类型的格式等;验证登录的用户名和密码是否一致/高相似度、密码是否为空、密码是否少于8个字符、是否为三种不同类型的字符组合等;如验证对应的登录验证码是否超时、是否与服务器发送的验证码一致等等。需要注意的是,该处的合法性验证只是例举,还包括其他的各种合法性验证。
当通过第一调度器收集窗体或者交互控件的输入数据和隐藏数据后,调用界面数据组合逻辑,通过界面数据组合逻辑对输入数据和隐藏数据进行合法性验证,若合法,则根据输入对象和隐藏数据形成数据对象,其中,根据输入对象和隐藏数据形成数据对象的过程请参看上文中的描述;若不合法,则确定不合法数据的来源,即不合法数据来自于哪个交互控件,根据该交互控件触发对应的提示信息,并显示对应的提示信息。
通过界面数据组合逻辑来进一步提高第一调度器收集的输入数据和隐藏数据的合法性,在用户界面管控层就对输入数据和隐藏数据合法性进行验证,第一时间对不合法数据进行提示,以提高GUI应用程序的响应速度,且业务处理层无需对数据合法性进行验证,以使得业务处理层更专注于业务的处理逻辑。
根据输入数据和隐藏数据形成数据对象后,通过第一调度器从业务处理对象句柄池的多个业务对象中,确定处理数据对象的目标业务对象。如将输入数据和隐藏数据所归属的业务对象,确定为处理数据对象的目标业务对象。
确定目标业务对象后,通过目标业务对象对应的方法调用业务处理层,以使得业务处理层进行相应处理。例如,登陆业务对应的目标业务对象中包括登陆方法,通过目标业务对象对应的登陆方法来调用业务处理层。可以理解地,将用户界面管控层收集到的输入数据和隐藏数据传给登陆方法,通过登陆方法调用业务处理层,业务处理层接收到登陆方法后,进行一系列的处理。
需要注意的是,用户界面管控层收集窗体或者交互控件上的输入数据和隐藏数据时,对应的是该业务所对应的窗体或者交互控件。收集得到输入数据和隐藏数据后,则这些输入数据和隐藏数据跟界面没有任何关系了。不像现有的QT框架,比如说登录按钮,在登录按钮对应的点击事件中会写上获取各个相关控件的信息,比如用户名、密码等等都需要从对应控件上进行获取,获取之后还需要做各种业务操作,做完之后,还需要根据对应的结果刷新界面,以确定登录结果;这些所有的信息都是在登录按钮的点击事件中,都跟该登录按钮的点击事件相关,即都跟界面相关。本申请实施例中收集得到输入数据和隐藏数据之后,则由用户界面管控层来进行相应的处理。可以理解地,用户界面管控层向上用于管理同一业务下涉及的全部窗体和交互控件,组织它们的展示顺序;向下组织对应的业务处理层属于该业务的处理模块,进行相应的业务处理。
例如,对于登录业务,有对应的登录窗体,除此之外,还会有对应的配置服务器IP地址等的配置窗体。在登录窗体上检测到登录按钮触发之后,用户界面管控层首先去采集配置的服务器地址,如未采集到,则会把对应的配置窗体弹出来,提示要先填服务器地址;填好之后,再次检测到登录按钮触发之后,用户界面管控层采集服务器地址后,再采集登录名和密码,如果未采集到登录名和密码,则弹出提示框:请填账号密码。需要注意的是,这个提示框也属于登录业务的窗体之一;若采集到登录名和密码,则验证对应的登录名、密码等数据是否合法,若合法,进行下一步的操作。如此,来组织多个不同窗体之间的展示顺序。
此外,通过用户界面管控层来隔离异常,隔离界面(UI层)和业务。如当UI层出现异常时,不会影响业务处理层;对于业务处理层来说,顶多处理不了对应的数据;同理,业务处理层异常,不会影响到UI层,程序不会崩溃。
104,通过业务处理层调用网络层,以从服务器中获取业务对象所需的业务原始数据信息,并将业务原始数据信息发送至数据处理层进行格式转换处理,以得到业务展示数据信息。
业务处理层中包括第二调度器、服务清单和参数清单、数据处理器等相关模块,如图5所示。这些相关模块在业务处理层针对不同业务进行逻辑处理组合后通过第二调度器返还对应的数据(业务展示数据信息)到用户界面控制层。
在一种情况下,步骤104,包括:通过第二调度器接收基于目标业务对象生成的业务请求数据,并对业务请求数据进行参数转换处理,以得到带业务数据的请求参数;将请求参数以及业务的服务器地址发送至网络层;调用网络层访问服务器地址对应的服务器并接收服务器基于请求参数返回的业务原始数据信息。
当用户界面管控层通过目标业务对象调用业务处理层时,会向业务处理层发送对应的业务请求,业务处理层通过第二调度器接收基于目标业务对象生成的业务请求数据。其中,业务请求数据包括需调用的业务类型和调用该业务类型所需要的参数数据。其中,参数数据可以从数据对象中获取,即从UI层中的窗体和交互控件的输入数据和隐藏数据中获取。业务类型可简单理解为需实现的业务功能,如对于设备来说,对应的业务类型包括设备的添加、设备的删除、设备的更新等业务类型。
在处理每个业务类型的业务请求时,需调用不同的服务类型来完成对应的功能。而不同的服务类型在网络层所使用的参数和在UI层上所使用的参数可能存在不同,因此,对业务请求数据进行参数转换处理,以得到带业务数据的请求参数。
可以理解地,网络层和UI层可由不同的技术人员进行开发,不同的技术人员对表达同一个意思的参数可能会使用不同的参数名称,例如,用户名这个参数,网络层可能会用user_name,UI层可能会用txt_name等,为了能实现对应的功能,需要将UI层中得到的参数名称转换为网络层使用的参数名称。在一些情况下,同一个意思的参数可能参数类型也不相同,例如,用户编号这个参数,网络层可能会用string类型,UI层可能会使用int类型,因此,需要将UI层中得到的对应参数的参数类型转换为网络层对应的参数类型。进行参数转换的好处是,当UI层修改了所使用的参数后,网络层不必修改对应的参数;或者网络层修改了对应的参数后,UI层也不必进行修改。
进一步地,通过第二调度器接收基于目标业务对象生成的业务请求数据,并对业务请求数据进行参数转换处理,以得到带业务数据的请求参数的步骤,包括:通过第二调度器接收基于目标业务对象生成的业务请求数据;根据业务请求数据所对应的业务类型,从服务清单中确定需要调用的服务类型;根据服务类型将业务请求数据通过参数清单进行参数转换处理,以得到带业务数据的请求参数。
其中,根据业务请求数据所对应的业务类型,从服务清单中确定需要调用的服务类型。其中,服务清单中包括业务类型所需要调用的服务类型。如对于设备的添加该业务类型来说,所需要调用的服务类型包括:查询服务和添加服务。可理解为,当要实现添加设备的业务功能时,先通过查询服务来查询是否存在对应的设备数据,若不存在,则通过添加服务将设备进行添加。其中,服务类型可理解为实现某一个业务功能所需要调用的函数接口。如此,对于一个业务类型来说,需要调用的服务类型可包括一个或者多个。
对应地,当调用每个服务类型时需要把从UI层中获取的对应参数的参数名称转换为服务类型在网络层所需要使用的参数名称。其中,参数清单中包括每个参数在网络层中所使用的参数名称、对应参数在UI层中所使用的参数名称。在一些情况下,当UI层中获取的对应参数的参数类型与服务类型在网络层所需要使用的参数类型不相同时,还需要将对应参数的参数类型转换为网络层所需要使用的参数类型,如此,参数清单中还包括每个参数在网络层中所使用的参数类型。其中,将进行参数转换后的参数作为请求参数。
通过参数清单来保存网络层中所使用的参数名称/参数类型、UI层中所使用的参数名称/参数类型,只要有对应的参数清单在,有网络层和UI层中对应的参数名称/参数类型之间的映射关系,当UI层修改了所使用的参数名称/参数类型后,只需修改参数清单中对应的映射关系即可,不必修改网络层对应的参数名称/参数类型;或者网络层修改了对应的参数名称/参数类型后,也只需修改参数清单中对应的映射关系即可,UI层的参数名称/参数类型也不必进行修改。
需要指出的是,现有的QT框架中,由于业务数据、窗体代码交织在一起,当用户界面上修改了对应的参数名称后,后续的代码等都需要一个一个的修改对应的参数名称,如此,需要修改多处的参数名称,造成工作量增加,而且很容易遗漏修改,导致代码无法正常运行,增加了开发难度。
对业务请求数据进行参数转换处理,得到带业务数据的请求参数后,将请求参数以及业务的服务器地址发送至网络层。其中,服务器地址包括服务器的URL(UniformResource Locator,统一资源定位器)地址或者服务器的IP地址等,通过服务器地址以访问对应的服务器,以使得对应的服务器进行响应。可以理解地,一个业务可能使用多个不同的服务器,每个服务器所对应的IP地址或者URL地址都不相同,因此,需要将业务的服务器地址和请求参数一起发送至网络层。例如,对于设备的添加该业务类型来说,所需要调用的服务类型包括:查询服务和添加服务;其中,查询服务在一个服务器中,添加服务可能在另一个服务器中。
将请求参数和业务的服务器地址发送至网络层后,调用网络层访问服务器地址对应的服务器,并接收基于请求参数返回的业务原始数据信息。可以理解地,调用网络层访问服务器地址所对应的服务器,以基于请求参数在服务器获取对应的数据,将该数据作为业务原始数据信息;接收服务器返回的业务原始数据信息。可以理解地,网络层包括两个方面的功能:一,根据业务处理层给出的请求参数和服务器地址访问服务器获取业务数据或者操作结果(业务原始数据信息);二,收集服务器返回的业务数据或者操作结果(业务原始数据信息)。
网络层这两个方面的功能分别通过网络层的请求器和响应器来实现,如图6所示。请求器根据业务处理层给出的请求参数和服务器地址访问服务器获取业务数据或者操作结果(业务原始数据信息);响应器,收集服务器返回的业务数据或者操作结果(业务原始数据信息)。
服务器返回的业务原始数据信息将被第二调度器放入业务处理层的数据处理器中。数据处理器根据业务原始数据信息调用数据处理层进行格式转换处理,以得到业务展示数据信息的步骤,包括:数据处理器根据业务原始数据信息调用数据处理层中对应的数据格式化对象;利用数据格式化对象对业务原始数据信息进行格式转换处理,以得到业务展示数据信息。
数据处理器根据业务原始数据信息调用数据处理层提供的函数接口,以通过函数接口调用数据处理层中对应的数据格式化对象,利用数据格式化对象将服务器返回的业务原始数据信息进行格式转换处理,以处理为UI层可以展示的结构和类型,得到业务展示数据信息。
其中,数据处理层中包括各种用于数据格式化的数据格式化对象,这些数据格式化对象提供日期格式化、数字格式化、字典转化等相关的静态逻辑。如图6所示,数据处理层中包括日期格式化对象、数据格式化对象、时间格式化对象、其他格式化对象等。
可以理解地,一方面,在服务器中返回的业务原始数据信息中性别所对应的数据可能是1、2,而UI层展示需要为“男”、“女”这样的业务展示数据信息,因此,需要将业务原始数据信息通过数据处理层进行格式转换,以得到对应的业务展示数据信息。另一方面,数据处理层还会根据对象的数据结构来确定是否将多个业务原始数据信息进行结合。
例如,某个机构如某城市的某社区下所对应的多个摄像头设备,对应的将机构作为一个业务类,设备作为一个业务类,根据机构类生成机构对象,根据设备类生成设备对象。由于每个机构下可能会存在多种不同类型的设备,因此,在设计机构类时,该机构类会包括机构相关的一些基本信息,如机构名称、机构地址、机构编号等,还包括机构下所对应的设备对象列表。在设计设备类时,设备类中包括设备相关的一些基本信息,如设备名称、设备编号等,还包括机构编号等。根据对应的业务类生成对应的对象后,机构对象中会包括机构名称、机构地址、机构编号、机构下所对应的设备对象列表等信息,设备对象中会包括设备名称、设备编号、机构编号等。如此,在实现查询机构下的设备列表的业务功能时,会调用的服务类型包括:机构查询服务和设备查询服务。第二调度器会将机构查询服务对应的请求参数和服务器地址(对应机构查询服务的服务器地址)发送至网络层,网络层返回对应的业务原始数据信息(机构相关信息)后,再将机构相关信息中的机构编号传给设备查询服务对应的函数接口,第二调度器接着将设备查询服务对应的请求参数(包括机构编号)和服务器地址(对应设备查询服务的服务器地址)发送至网络层,网络层返回对应的业务原始数据信息(设备相关信息)。数据处理层接收到机构相关信息和设备相关信息后,根据机构对象的数据结构将设备相关信息整合机构相关信息下,以得到机构下对应的相关设备列表。如此,数据处理层还会根据对象的数据结构来确定是否将多个业务原始数据信息进行结合,以得到业务展示数据信息。
经过数据处理层的数据格式化对象进行处理后,得到业务展示数据信息后,将业务展示数据信息返回至业务处理层的第二调度器。
105,通过业务处理层将业务展示数据信息返回至用户界面管控层。
具体的,通过第二调度器将业务展示数据信息返回至用户界面管控层。其中,还是通过对应的业务对象来返回,如通过机构对象、登录对象、设备对象来返回等。
106,根据业务展示数据信息通过用户界面管控层刷新业务所对应的窗体。
用户界面管控层的第一调度器接收业务处理层返回的业务展示数据信息。该步骤中描述了用户界面管控层的又一个作用:将业务处理层返回的业务展示数据信息进行刷新,即将返回的业务展示数据信息反映到界面上,以对界面进行更新。其中,需要注意的是,用户界面管控层更新/刷新界面时,会有对应的顺序,该顺序是由用户界面管控层来进行控制和实现的,下文中将会详细描述。
在一种情况下,步骤106,包括:通过第一调度器将业务展示数据信息发送至界面数据组合逻辑;通过界面数据组合逻辑对业务展示数据信息进行合法性验证;若合法,则根据业务展示数据信息刷新业务所对应的窗体;若不合法,则进行提示,如提示业务处理失败等信息。具体地,界面数据组合逻辑请参看上文中对应的内容以进行理解,在此不再赘述。
其中,业务展示数据信息包括多种不同的类型,将其分为两大类:提示消息和操作类数据。对应地,根据业务展示数据信息刷新业务所对应的窗体的步骤,包括:当业务展示数据信息包括提示消息时,根据提示消息调用对应的交互控件,并在所述交互控件上展示所述提示消息;当业务展示数据信息包括操作类数据时,获取操作类数据所对应的交互控件标识,并获取交互控件标识所对应的交互控件当前显示的展示数据;当操作类数据与展示数据不相同时,根据操作类数据更新展示数据,以刷新业务所对应的窗体。
当业务展示数据信息包括提示消息时,根据提示消息调用对应的交互控件,并在交互控件上展示提示消息。其中,提示消息对应的交互控件包括单独弹出的对话框,或者在窗体上显示提示信息的提示框等。例如,业务展示数据信息对应的提示消息为“登录超时”,则对应的交互控件为对话框,即弹出对话框,在对话框上显示“登录超时”等相应的提示;若业务展示数据信息对应的提示信息为“密码错误”,则对应的交互控件为提示框,以在窗体上密码输入控件后面显示“密码错误”等相应的提示。进行提示的方式,是调用show方法来实现,如调用提示框的show方法,则实现在提示框中显示对应的提示消息。需要注意的是,此处需要在哪里显示提示消息,是由用户界面管控层来确定的,并且显示提示消息的顺序也是用户界面管控层来实现的。
当业务展示数据信息包括操作类数据时,获取操作类数据所对应的交互控件标识,并获取交互控件标识所对应的交互控件当前显示的展示数据;当操作类数据与展示数据不相同时,根据操作类数据更新展示数据,以刷新业务所对应的窗体;当操作类数据与展示数据相同时,不进行刷新。
其中,可以理解地,在窗体/界面上所展示的所有数据形成一个数据显示对象,该数据显示对象中包括对应业务对象在界面上展示的所有数据所对应的交互控件索引(即交互控件标识)。可以理解地,机构对象中包括机构名称、机构地址、机构编号、机构下所对应的设备对象列表等信息。然而在界面上一般不会显示机构编号,但会显示机构名称、机构地址、机构下所对应的设备列表等信息。因此,该结构对象所对应的数据显示对象包括机构名称、机构地址、机构下所对应的设备列表等对应的交互控件索引信息/交互控件标识。
因此,获取操作类数据所对应的交互控件标识,包括:获取操作类数据所对应的数据显示对象,并获取数据显示对象中的交互控件标识。获取了交互控件标识之后,获取交互控件标识所对应的交互控件当前显示的展示数据。
同理,在用户界面管控层收集输入数据时,业务对象所对应的数据显示对象,会根据对应的交互控件标识来获取交互控件的输入数据。
当操作类数据与展示数据不相同时,根据操作类数据更新展示数据,以刷新业务所对应的窗体;当操作类数据与展示数据相同时,不进行刷新。例如,机构对象所对应的数据显示对象中的交互控件标识所对应的展示数据分别为:机构名称aaa,机构地址AAAA,机构下所对应的设备列表为AaAaAa等;而操作类数据所对应的机构名称bbb,机构地址AAAA,机构下所对应的设备列表为AaAaAa等,则操作类数据和展示数据不相同,根据操作类数据更新展示数据,即将机构名称更改为bbb,并进行刷新窗体,以使得窗体上显示的结构名称也更改为bbb。
上述实施例将QT框架实现的每个业务分为多层,利用不同层实现业务的不同功能,层级间通过调用的方式来实现。采用分层架构的模式,将QT框架实现的桌面系统隔离UI、业务、网络、数据处理,不同层可独立实现,各层之间相互不影响,使得在实现业务逻辑时可针对不同层级先进行分层实现,再进行调用服务组合的方式来组织系统的结构,这样不同的层级只处理各种所负责的那块,无需担心因为代码交织导致的调用时相互影响的问题,层级模块间调用起来十分便捷,扩展性也较为优秀。即提高了GUI应用程序的扩展性,方便对GUI应用程序的维护。
本申请实施例还提供一种数据处理装置,该数据处理装置包括用户界面层、用户界面管控层、业务处理层、网络层和数据处理层,该数据处理装置包括:
用户界面层,用于生成业务所对应的窗体,以及窗体中的交互控件,其中,窗体派生于父窗体,父窗体对应的窗体类为窗体基类;
业务处理层,用于生成业务的多个业务对象,并将多个业务对象注入至用户界面管控层;
用户界面管控层,用于收集窗体或者交互控件的输入数据和隐藏数据,并确定处理输入数据和隐藏数据的业务对象,根据业务对象调用业务处理层,以使业务处理层进行业务处理;
业务处理层,用于调用网络层,以从服务器中获取业务对象所需的业务原始数据信息,并根据业务原始数据信息调用数据处理层进行格式转换处理,以得到业务展示数据信息;
业务处理层,用于将业务展示数据信息返回至用户界面管控层;
用户界面管控层,用于根据业务展示数据信息刷新业务所对应的窗体。
本申请实施例中的数据处理装置与数据处理方法相对应,具体实现的步骤和达到的有益效果请参看上述数据处理方法对应的描述,在此不再赘述。
本申请实施例还提供一种电子设备,如图7所示,其示出了本申请实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器901、一个或一个以上计算机可读存储介质的存储器902、射频(Radio Frequency,RF)电路903、电源904、输入单元905、以及显示单元906等部件。本领域技术人员可以理解,图中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器901是该电子设备的控制中心,处理器利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器可包括一个或多个处理核心;优选的,处理器可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解地是,上述调制解调处理器也可以不集成到处理器中。
存储器902可用于存储软件程序(计算机程序)以及模块,处理器901通过运行存储在存储器902的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器902还可以包括存储器控制器,以提供处理器901对存储器902的访问。
RF电路903可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器901处理;另外,将涉及上行的数据发送给基站。通常,RF电路903包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路903还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobilecommunication)、通用分组无线服务(GPRS,General Packet Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband CodeDivision Multiple Access)、长期演进(LTE,Long Term Evolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
电子设备还包括给各个部件供电的电源904(比如电池),优选的,电源904可以通过电源管理系统与处理器901逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源904还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元905,该输入单元905可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体地实施例中,输入单元905可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器901,并能接收处理器901发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元905还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
该电子设备还可包括显示单元906,该显示单元906可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元906可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器901以确定触摸事件的类型,随后处理器901根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
尽管未示出,电子设备还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,电子设备中的处理器901会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器902中,并由处理器901来运行存储在存储器902中的应用程序(计算机程序),从而实现各种功能,如下:
电子设备包括数据处理系统,所述数据处理系统包括用户界面层、用户界面管控层、业务处理层、网络层和数据处理层;
通过用户界面层生成业务所对应的窗体,以及所述窗体中的交互控件,其中,所述窗体派生于父窗体,所述父窗体对应的窗体类为窗体基类;通过业务处理层生成所述业务的多个业务对象,并将所述多个业务对象注入至用户界面管控层;通过所述用户界面管控层收集所述窗体或者所述交互控件的输入数据和隐藏数据,并确定处理所述输入数据和隐藏数据的业务对象,根据所述业务对象调用所述业务处理层,以使所述业务处理层进行业务处理;通过所述业务处理层调用网络层,以从服务器中获取所述业务对象所需的业务原始数据信息,并根据所述业务原始数据信息调用数据处理层进行格式转换处理,以得到业务展示数据信息;通过所述业务处理层将所述业务展示数据信息返回至所述用户界面管控层;根据所述业务展示数据信息通过所述用户界面管控层刷新所述业务所对应的窗体。
该电子设备可以实现本申请实施例所提供的数据处理方法任一实施例中的步骤,因此,可以实现本申请实施例所提供的任一数据处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令(计算机程序)来完成,或通过指令(计算机程序)控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的数据处理方法中任一实施例的步骤。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一数据处理方法实施例中的步骤,因此,可以实现本发明实施例所提供的任一数据处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种数据处理方法、装置、系统、电子设备以及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据处理方法,其特征在于,应用于数据处理系统中,所述数据处理系统包括用户界面层、用户界面管控层、业务处理层、网络层和数据处理层,所述数据处理方法包括:
通过用户界面层生成业务所对应的窗体,以及所述窗体中的交互控件,其中,所述窗体派生于父窗体,所述父窗体对应的窗体类为窗体基类;
通过业务处理层生成所述业务的多个业务对象,并将所述多个业务对象注入至用户界面管控层;
通过所述用户界面管控层收集所述业务下所涉及的所述窗体或者所述交互控件的输入数据和隐藏数据,并确定处理所述输入数据和隐藏数据的业务对象,根据所述业务对象调用所述业务处理层,以使所述业务处理层进行业务处理;
通过所述业务处理层调用网络层,以从服务器中获取所述业务对象所需的业务原始数据信息,并根据所述业务原始数据信息调用数据处理层进行格式转换处理,以得到业务展示数据信息;
通过所述业务处理层将所述业务展示数据信息返回至所述用户界面管控层;
根据所述业务展示数据信息通过所述用户界面管控层刷新所述业务所对应的窗体。
2.根据权利要求1所述的数据处理方法,其特征在于,所述用户界面管控层包括第一调度器和业务处理对象句柄池,所述通过所述用户界面管控层收集所述窗体或者所述交互控件的输入数据和隐藏数据,并确定处理所述输入数据和隐藏数据的业务对象,根据所述业务对象调用所述业务处理层,以使所述业务处理层进行业务处理的步骤,包括:
通过所述第一调度器收集所述窗体或者所述交互控件的输入数据和隐藏数据,并根据所述输入数据和隐藏数据形成数据对象;
通过所述第一调度器从所述业务处理对象句柄池的多个业务对象中,确定处理所述数据对象的目标业务对象;
通过所述目标业务对象调用业务处理层,以使所述业务处理层进行业务处理。
3.根据权利要求2所述的数据处理方法,其特征在于,所述用户界面管控层还包括界面数据组合逻辑,通过所述第一调度器收集所述窗体或者所述交互控件的输入数据和隐藏数据,并根据所述输入数据和隐藏数据形成数据对象的步骤,包括:
通过所述第一调度器收集所述窗体或者所述交互控件的输入数据和隐藏数据;
通过所述界面数据组合逻辑对所述输入数据和隐藏数据进行合法性验证;
若合法,根据所述输入数据和隐藏数据形成数据对象。
4.根据权利要求3所述的数据处理方法,其特征在于,所述根据所述业务展示数据信息通过所述用户界面管控层刷新所述业务所对应的窗体的步骤,包括:
通过所述第一调度器将所述业务展示数据信息发送至界面数据组合逻辑;
通过所述界面数据组合逻辑对所述业务展示数据信息进行合法性验证;
若合法,则根据所述业务展示数据信息刷新所述业务所对应的窗体。
5.根据权利要求4所述的数据处理方法,其特征在于,所述根据所述业务展示数据信息刷新所述业务所对应的窗体的步骤,包括:
当所述业务展示数据信息包括提示消息时,根据提示消息调用对应的交互控件,并在所述交互控件上展示所述提示消息;
当所述业务展示数据信息包括操作类数据时,获取操作类数据所对应的交互控件标识,并获取所述交互控件标识所对应的交互控件当前显示的展示数据;
当所述操作类数据与所述展示数据不相同时,根据操作类数据更新所述展示数据,以刷新所述业务所对应的窗体。
6.根据权利要求2所述的数据处理方法,其特征在于,所述业务处理层包括第二调度器,所述通过所述业务处理层调用网络层,以从服务器中获取所述业务所对应的业务原始数据信息的步骤,包括:
通过所述第二调度器接收基于所述目标业务对象生成的业务请求数据,并对所述业务请求数据进行参数转换处理,以得到带业务数据的请求参数;
将所述请求参数以及所述业务的服务器地址发送至网络层;
调用所述网络层访问所述服务器地址对应的服务器并接收所述服务器基于所述请求参数返回的业务原始数据信息。
7.根据权利要求6所述的数据处理方法,其特征在于,所述业务处理层还包括服务清单和参数清单,所述第二调度器接收基于所述目标业务对象生成的业务请求数据,并对所述业务请求数据进行参数转换处理,以得到带业务数据的请求参数的步骤,包括:
通过所述第二调度器接收基于所述目标业务对象生成的业务请求数据;
根据所述业务请求数据所对应的业务类型,从所述服务清单中确定需要调用的服务类型;
根据所述服务类型将所述业务请求数据通过所述参数清单进行参数转换处理,以得到带业务数据的请求参数。
8.根据权利要求1所述的数据处理方法,其特征在于,根据所述业务原始数据信息调用数据处理层进行格式转换处理,以得到业务展示数据信息的步骤,包括:
根据所述业务原始数据信息调用数据处理层中对应的数据格式化对象;
利用所述数据格式化对象对所述业务原始数据信息进行格式转换处理,以得到业务展示数据信息。
9.一种数据处理系统,其特征在于,包括用户界面层、用户界面管控层、业务处理层、网络层和数据处理层:
所述用户界面层,用于生成业务所对应的窗体,以及所述窗体中的交互控件,其中,所述窗体派生于父窗体,所述父窗体对应的窗体类为窗体基类;
所述业务处理层,用于生成所述业务的多个业务对象,并将所述多个业务对象注入至用户界面管控层;
所述用户界面管控层,用于收集所述业务下所涉及的所述窗体或者所述交互控件的输入数据和隐藏数据,并确定处理所述输入数据和隐藏数据的业务对象,根据所述业务对象调用所述业务处理层,以使所述业务处理层进行业务处理;
所述业务处理层,还用于通过所述业务处理层调用网络层,以从服务器中获取所述业务对象所需的业务原始数据信息,并将所述业务原始数据信息发送至数据处理层进行格式转换处理,以得到业务展示数据信息;
所述业务处理层,还用于将所述业务展示数据信息返回至所述用户界面管控层;
所述用户界面管控层,还用于根据所述业务展示数据信息刷新所述业务所对应的窗体。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述权利要求1至8任一项所述的数据处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110078885.7A CN112395117B (zh) | 2021-01-21 | 2021-01-21 | 一种数据处理方法、系统和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110078885.7A CN112395117B (zh) | 2021-01-21 | 2021-01-21 | 一种数据处理方法、系统和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112395117A CN112395117A (zh) | 2021-02-23 |
CN112395117B true CN112395117B (zh) | 2021-04-27 |
Family
ID=74624915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110078885.7A Active CN112395117B (zh) | 2021-01-21 | 2021-01-21 | 一种数据处理方法、系统和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112395117B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115330540A (zh) * | 2022-10-11 | 2022-11-11 | 凯美瑞德(苏州)信息科技股份有限公司 | 一种处理交易数据的方法和装置 |
CN117348965B (zh) * | 2023-12-06 | 2024-02-23 | 北京热源汇盈网络科技有限公司 | 基于桌面窗体应用程序的多窗体管理方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004742A (zh) * | 2009-09-01 | 2011-04-06 | 上海杉达学院 | 多层数据库访问结构 |
US10198626B2 (en) * | 2016-10-19 | 2019-02-05 | Snap Inc. | Neural networks for facial modeling |
CN108845791B (zh) * | 2018-05-31 | 2022-03-18 | 浪潮金融信息技术有限公司 | 应用程序代码开发处理方法及装置、可读存储介质、终端 |
CN111158690B (zh) * | 2020-01-02 | 2023-11-17 | 北京东土科技股份有限公司 | 桌面应用框架、构建方法、桌面应用运行方法及存储介质 |
CN111930365B (zh) * | 2020-09-18 | 2021-02-26 | 季华实验室 | 基于Qt的应用程序快速开发框架、开发方法及运行方法 |
-
2021
- 2021-01-21 CN CN202110078885.7A patent/CN112395117B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112395117A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220247833A1 (en) | Installable web applications | |
CN110417988B (zh) | 一种界面显示方法、装置及设备 | |
US10028116B2 (en) | De-siloing applications for personalization and task completion services | |
EP3335411B1 (en) | Electronic device and method of managing application programs thereof | |
CN110869907B (zh) | 一种浏览应用页面的方法及终端 | |
US9218324B2 (en) | Method of encapsulating diverse user interface components while consistently enforcing external constraints | |
CN108027706A (zh) | 一种应用界面显示方法以及终端设备 | |
US20190114152A1 (en) | Systems and methods for building applications using building blocks linkable with metadata | |
CN112395117B (zh) | 一种数据处理方法、系统和存储介质 | |
US20120079009A1 (en) | Method and apparatus for choosing resources based on context and inheritance | |
CN111330280A (zh) | 游戏中的数据处理方法、装置、存储介质与电子设备 | |
CN113268260A (zh) | 用于web前端的路由方法及装置 | |
CN115309470A (zh) | 微件的加载方法、装置、设备以及存储介质 | |
US20170212962A1 (en) | Apparatus and method for managing history information in an electronic device | |
CN113176899A (zh) | 一种多安卓操作系统的运行方法及终端设备 | |
CN108038370A (zh) | 沙箱活动组件进程空间分配方法、分配装置和分配终端 | |
CN113742716B (zh) | 代码运行方法、装置、电子设备、存储介质和程序产品 | |
US20180260847A1 (en) | Information display method, apparatus, and system | |
CN113176898A (zh) | 一种多操作系统权限配置方法、终端设备及mdm设备 | |
US11949761B2 (en) | Techniques for distributed interface component generation | |
CN112000420B (zh) | 一种数据处理方法和装置 | |
CN112306704B (zh) | 一种数值包转移方法和终端、服务器、系统以及存储介质 | |
CN117827165A (zh) | 一种代码生成方法、装置、电子设备及存储介质 | |
CN115543314A (zh) | 一种报表生成方法、装置、设备和存储介质 | |
CN117408232A (zh) | 网页的pdf格式文件生成方法、装置、电子设备和存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |