1.本发明属于服务程序的开发技术领域,特别适用于由界面完成配置适配各种场景服务过程管理的变化,更具体的是涉及多场景配置方法方法、系统、设备及介质。
背景技术:2.现有技术中,与服务过程管理相关的上下户管理中,往往涉及多种不同的场景即多种服务过程管理的方式,比如:产品提出经纪人代客操作上户、劳动者客户两方确认上户、劳动者客户经纪人三方确认上户等多种服务过程管理的方式,而每一种方式都需要进行对应的开发,尤其是投入各种资源进行开发。并且,在服务过程管理的运行过程所涉及的服务过程中的各种消息提醒、日志记录等出现变更或存在变更需求时,也同样需要投入新的开发资源。因而,反复接入开发投入开发资源,导致服务过程管理的效率降低,重复查询等带来各种资源消耗大,开发性能降低。
3.因而需要对现有的服务程序的开发进行改进,提高服务过程管理的开发效率、并节约开发需要投入的人力成本和缩短开发周期。
技术实现要素:4.(一)要解决的技术问题
5.本发明旨在解决如何在程序开发中通过构建动态可灵活配置的模板即可适应不同的应用场景而无需接入开发的技术问题;进一步,解决如何通过界面配置模板的方式即可灵活调整服务过程管理适配对应的应用场景从而灵活调整运营策略无需开发资源投入的技术问题;再进一步,解决了如何通过模板界面配置,调整服务过程管理中主要流程参数,缓存和推送信息,以减少重复查询提高程序开发效率和程序性能、节约开发成本并缩短开发周期的技术问题。
6.(二)技术方案
7.为解决上述技术问题,本发明的一方面提出一种多场景配置方法,包括:根据预设参数,确定程序开发的模板;基于所述模板,根据不同的应用场景进行不同的配置以动态调整上、下户管理。
8.根据本发明的优选实施方式,根据预设参数,确定程序开发的模板,具体包括:根据对任务配置结构进行分析,预定需要编制的模板所涉及的配置数据;所述配置数据至少包括配置流程、配置节点以及完成事件模板;将所述配置流程、配置节点以及完成事件模板分别具有相应的属性类型预设为参数;所述参数至少包括以下一项或多项:相关的业务类型、参与角色、和/或节点完成事件。
9.根据本发明的优选实施方式,所述业务类型至少包括以下一项或多项:上户、下户、请假、工资确认;所述参与角色至少包括以下一个或多个:客户、经纪人、劳动者;所述节点完成事件至少包括以下一件或多件:日志记录、消息提醒。
10.根据本发明的优选实施方式,基于所述模板,根据不同的应用场景进行不同的配
置,包括:根据不同的应用场景通过交互界面在服务器端配置平台上采用json格式的数据进行配置;基于所述模板,预先设置一部分属性类型;基于所述模板新建流程、创建流程中的节点以及创建完成事件;缓存配置的所述模板中的所述流程、节点以及事件的数据。
11.根据本发明的优选实施方式,基于所述模板新建流程、创建流程中的节点以及创建完成事件,具体包括:构建对应所述模板的流程模板对象、创建流程中对应所述模板的节点模板对象、以及分别为预先设置的所述属性类型和未预先设置的属性类型生成对应所述模板的事件模板对象;还包括:启动服务或修改配置时,读取新建流程中的节点,按照所述流程中的节点顺序放入队列;遍历所述队列并依据队列中每个节点在完成事件表中读取相应的完成事件配置;解析完成事件的数据获得相应的完成事件的实体添加到队列中相应的节点上;缓存配置的所述模板中的所述流程、节点以及事件的数据,具体包括:通过redis缓存节点队列的数据,并通过关键字任务类型和节点对应角色定位队列中相应节点。
12.根据本发明的优选实施方式,动态调整上、下户管理,具体包括:当发起了上下户任务流程时,通过任务类型和起始角色读取redis缓存节点队列中相应所述任务流程的节点,以动态改变任务流转方向。
13.根据本发明的优选实施方式,动态改变任务流转方向具体包括:读取所述节点并按所述节点创建任务明细;判断发起当前上下户任务流程的角色并获取所述角色的节点完成事件实体类;将本次服务的数据创建统一数据实体缓存到redis;遍历并执行所述节点的完成事件实体类的dofinish方法,以确定一次任务流转中各个节点的顺序。
14.为解决上述技术问题,本发明的二方面提出一种多场景配置系统,包括:确定模块,用于根据预设参数,确定程序开发的模板;配置模块,用于基于所述模板,根据不同的应用场景进行不同的配置以动态调整上、下户管理。
15.本发明第三方面提出一种电子设备,包括处理器和存储器,所述存储器用于存储计算机可执行程序,当所述计算机程序被所述处理器执行时,所述处理器执行所述第一方面的方法。
16.本发明第四方面还提出一种计算机可读存储介质,存储有计算机可执行程序,所述计算机可执行程序被执行时,实现所述第一方面的方法。
17.(三)有益效果
18.本发明通过构建一套模板,对程序开发中的不同节点适配不同场合进行相应排序调整,仅改变服务器端的信号流向对客户端不必进行调整,即可改变信号流方向而实现相应服务过程管理开发的整体改变,无需每转换一个场合或者场景、每出现一些变化都投入资源接入开发。
19.进一步,通过界面配置模板的方式,能更加灵活转换策略、调整服务过程管理更简单便捷高效,同时不必接入开发,减少资源投入和消耗。
20.进一步,通过在模板的界面配置中调整主要流程参数、缓存和推送信息等,减少了重复查询,进一步提高程序开发效率和程序性能,节约开发成本,有效缩短开发周期。
21.进一步,后续出现新增新流程或者修改流程中的日志内容、消息、即时通信、推送push、卡片等,服务端都无需修改,仅需调整配置内容即可。
附图说明
22.图1是根据本发明的多场景配置方法的一个实施例的主要流程图;
23.图2是根据本发明的多场景配置系统的一个实施例的主要结构框图;
24.图3是根据本发明的电子设备的一个实施例的主要结构示框图;
25.图4是根据本发明的更具体的一个电子设备的一个实施例的主要结构示意图;
26.图5是根据本发明的计算机可读存储介质的一个实施例的主要结构示意图;
27.图6根据本发明的技术方案的一个应用场景的实施例中任务配置场景示例中预设类型参数的例子。
具体实施方式
28.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
29.在对于具体实施例的介绍过程中,对结构、性能、效果或者其他特征的细节描述是为了使本领域的技术人员对实施例能够充分理解。但是,并不排除本领域技术人员可以在特定情况下,以不含有上述结构、性能、效果或者其他特征的技术方案来实施本发明。
30.附图中的流程图仅是一种示例性的流程演示,不代表本发明的方案中必须包括流程图中的所有的内容、操作和步骤,也不代表必须按照图中所显示的的顺序执行。例如,流程图中有的操作/步骤可以分解,有的操作/步骤可以合并或部分合并,等等,在不脱离本发明的发明主旨的情况下,流程图中显示的执行顺序可以根据实际情况改变。
31.附图中的框图一般表示的是功能实体,并不一定必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理单元装置和/或微控制器装置中实现这些功能实体。
32.各附图中相同的附图标记表示相同或类似的元件、组件或部分,因而下文中可能省略了对相同或类似的元件、组件或部分的重复描述。还应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但是这些器件、元件、组件或部分不应受这些定语的限制。也就是说,这些定语仅是用来将一者与另一者区分。例如,第一器件亦可称为第二器件,但不偏离本发明实质的技术方案。此外,术语“和/或”、“及/或”是指包括所列出项目中的任一个或多个的所有组合。
33.为解决上述技术问题,本发明提出一种都场景配置方案。其在方法中主要通过预设参数确定程序开发的模板,并基于所述模板在面对不同的应用场景时进行不同的配置以动态调整上、下户管理。从而,只用通过界面来配置这套模板而无需开发接入就能灵活的调整运营的策略,调整参与的角色和顺序,以及相关的消息推送和日志记录;并且,流程执行中,缓存了各个节点需要的数据,模板能通过缓存数据直接构建消息提醒、日志记录,减少了重复查询消耗、提高了性能,也无需由于场景业务中服务过程变化和运行中的服务信息变化而总要开发投入资源。进而,提高适应不同场景的服务管理的开发效率、节约了开发人力和资源投入的成本、并减短开发周期,整体性能提高,同时,这样的界面模板配置方式也使得代码更简洁。
34.下面将对本发明的各个实施例中涉及到的部分名词进行说明:
35.上户,指开始服务。
36.下户,指结束服务。
37.劳动者:通过应用程序app或网络/平台接收服务请求提供服务的一方,能操作上户和下户。
38.客户:通过应用程序app或网络/平台发送/提出服务请求的一方,能操作上户和下户。
39.经纪人:能代理客户操作上户的第三方。
40.【实施例1】
41.下面结合图1所示本发明的方法的一个实施例的主要步骤流程图进行说明。
42.在步骤s110,根据预设参数,确定程序开发的模板。
43.一个实施方式中,可以根据预设的一些参数来预先确定一套模板。例如:可以是通过动态灵活配置这些参数,这些参数包括但不限于:业务类型(上户,下户,请假,工资确认),参与角色,节点完成事件(包含日志记录,消息提醒),等等,来确定一套模板。
44.进一步,可以利用诸如提供上下户管理(或其他各种服务管理)的应用程序app或网络/平台的界面来配置此模板。进一步,模板可以在数据库中存储进而对应进行配置。
45.进一步,该模板中,每个节点都独立的,能够动态调整,适应不同的应用场景。这样,程序开发时,通过编制一套模板,其中的节点可以根据不同场合进行对应排序。比如:根据不同的场合进行对应不同排序配置,从而可以使信号流的方向发生对应改变,实现整个程序适应不同的应用场景。
46.一个在家政服务场景的应用例子:
47.编制一套模板,先根据行业情况预设各种属性类型的参数,以确定程序开发的模板。这些参数是构建该模板的配置数据,其涉及了在开发或者说配置中需要用到的至少包括但不限于配置流程、配置节点、完成事件等各个部分有关的属性类型等。并且,对这些配置数据提供相应的说明,通过编号、数字等简洁符号信息来代表节点、属性类型等具体内容。
48.这样,就可以在服务器端(此处仅为例子,不作为对前端、本地等的情形的限制)等统一配置平台中直接进行配置,假定选择配置的是json格式的数据(轻量级的数据交换格式)等。配置节点和数据如图6所示例子,从上到下依次type:3(表示上下户类型)、role:1(表示节点/环节参与角色)、sortid:0(表示排序)、type:3完成事件类型、result:1(节点处理结果)、param:完成事件参数信息,等等。
49.由此形成当前应用场景对应的模板。
50.可见,本发明的该实施例中,无需开发接入就能灵活调整管理运营的策略,应对更多的服务场景。比如,调整参与角色和/或顺序(节点完成事件),甚至包括相关的消息推送和日志记录等,灵活机动,简单快速高效。
51.在步骤s120,基于所述模板,根据不同的应用场景进行不同的配置以动态调整上、下户管理。
52.具体比如:通过模板获取对应的配置数据和模板的数据的使用过程,即程序开发时任务配置中的配置解析和任务流转两个部分。
53.一个实施方式中,提供前端交互界面由用户操作完成,具体地,客户端app打开,通
过可交互的配置界面,进行配置,并将配置存储到连接到的服务器端的配置平台等。
54.进一步,通过交互提供(例如输入)的模板所需的参数,配置各个节点所需要的数据后进行缓存如redis缓存,模板根据缓存的各个参数的具体数据数值等直接构建消息提醒、日志记录。
55.进一步,通过界面交互方式,基于所述模板对不同的开发所对应的应用场景/场合进行相应的配置,例如按模板参数进行录入,并缓存相应参数的数据,尤其是缓存各个节点所需要的数据。按照不同的场合确定不同的节点排序,由此能动态改变信号流的方向。
56.进而,当各个节点对应不同的场合时,所述模板调取缓存的数据,对应不同场合,提供不同排序的节点的数据,并直接构建消息提醒、日志记录等,从而能够实现整个系统不同的应用场景相应的不同的上下户管理,即动态调整管理策略,无需每个场景的开发重新接入,同时,从缓存的数据中进行直接调取和构建消息、日志等,也能有效减少重复查询的消耗。
57.承前述家政服务的应用的例子:
58.该例子中将具体描述对应该模板,进行配置解析和任务流转,即获取各类型参数的数据并使用的过程。配置解析部分至少包括:节点解析器、任务流程处理等;任务流转至少包括:任务完成事件处理等。
59.配置过程中,首先,运营方对于新建流程可以通过选择品类和城市、选择业务类型、选择起始节点角色,生成对应编制的模板的“流程”模板对象;进而,运营方对于创建节点可以通过选择节点角色、确定节点序号,生成对应编制的模板的“节点”模板对象;再进一步,运营方对于创建完成事件可以通过判断事件类型,分别对已预设类型编辑事件模板、对未预设的类型输入接口名和参数模板,生成对应编制的模板的“事件”模板对象;并将配置后的该模板缓存,同时缓存了各节点、事件和流程相关的数据。由此配置,简单而便捷,无需在开发接入。
60.在运行过程中,启动服务或修改配置后,会从数据库读取存储的配置数据,例如:第一步:按照新建的每个流程读取对应该流程中的节点,这些节点根据流程形成节点上的排序顺序,放入队列中(如前述配置过程中新建流程下创建的节点);第二步:遍历该队列中所有节点,依据每个节点去完成事件表中读取节点对应的完成事件配置(如前述配置过程中对应创建的节点创建的完成事件);第三步:解析完成事件的数据,如果完成事件的类型对应是预设类型(如:记的日志、短信、app推送、即时消息等),则可以将完成事件的这些类型对应的参数转化成对应类型的实体,然后将完成称事件的实体添加到队列中对应的节点上;如果完成事件的类型对应为未预设类型,则可以通过完成事件配置上的例如方法类型、方法名等查找服务中的服务的方法类从而通过诸如javaassist字节码等创建非预设的完成事件实体类,同样,再将完成称事件的实体添加到队列中对应的节点上;第四步:缓存节点队列数据(如通过redis缓存),关键字key可以采用任务类型和节点对应角色,通过这两个参数能精确定位到队列中指定的节点。
61.进一步,当用户发起了上下户任务流程时,通过任务类型和起始角色读取之前redis缓存的任务流程节点,此时就能确定一次任务流转中各个节点的顺序。例如:步骤1、读取节点,按节点创建任务明细(任务明细负责记录任务环节的执行角色和执行状态,创建时都是待处理状态);步骤2、判断当前发起用户的角色,获取对应角色的节点的完成事件实
体类;步骤3、将本次操作的订单服务数据创建统一的数据实体,放入redis,以供后续一系列完成事件重复使用,减少查询时间,提高效率;步骤4、遍历执行节点的完成事件实体的dofinish方法。
62.可见,本发明的该实施方式只需要改变服务器端对应不同应用场景的节点的排序,即信号的流向而客户端不需要有任何改变,不受到影响,不需要每改变一次场景都重新进行开发接入,开发效率和系统性能都有所提升,整体代码更加简化简洁。
63.由此,本发明的提供的技术方案,通过业务类型(上户,下户,请假,工资确认),参与角色,节点完成事件(包含日志记录,消息提醒)确定了一套模板,产品只用通过界面配置这套模板,无需开发接入,就能灵活的调整运营的策略,调整参与的角色和顺序,以及相关的消息推送和日志记录。而在流程执行中,缓存了各个节点需要的数据,模板能通过缓存数据直接构建消息提醒,日志记录,减少了重复查询消耗,提高性能。基于配置预定模版参数和缓存数据的方式,便于适应场景的开发以及运行的效率,本发明在程序开发适应不同应用场景的技术上,提高了开发效率,节约了开发人力成本并减短了开发周期,其提高了系统性能,同时整体代码更加简洁。
64.【实施例2】
65.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明的系统实现作进一步的详细说明。
66.下面将结合图2所示本发明的系统的一个实施例的主要结构框图进行说明。在本实施例中,该系统至少包括确定模块110,配置模块120。
67.确定模块110,用于根据预设参数,确定程序开发的模板。
68.一个实施方式中,可以根据预设的一些参数来预先确定一套模板。例如:可以是通过动态灵活配置这些参数,这些参数包括但不限于:业务类型(上户,下户,请假,工资确认),参与角色,节点完成事件(包含日志记录,消息提醒),等等,来确定一套模板。
69.进一步,可以利用诸如提供上下户管理(或其他各种服务管理)的应用程序app或网络/平台的界面来配置此模板。进一步,模板可以在数据库中存储进而对应进行配置。
70.进一步,该模板中,每个节点都独立的,能够动态调整,适应不同的应用场景。这样,程序开发时,通过编制一套模板,其中的节点可以根据不同场合进行对应排序。比如:根据不同的场合进行对应不同排序配置,从而可以使信号流的方向发生对应改变,实现整个程序适应不同的应用场景。
71.一个在家政服务场景的应用例子:
72.编制一套模板,先根据行业情况预设各种属性类型的参数,以确定程序开发的模板。这些参数是构建该模板的配置数据,其涉及了在开发或者说配置中需要用到的至少包括但不限于配置流程、配置节点、完成事件等各个部分有关的属性类型等。并且,对这些配置数据提供相应的说明,通过编号、数字等简洁符号信息来代表节点、属性类型等具体内容。
73.这样,就可以在服务器端(此处仅为例子,不作为对前端、本地等的情形的限制)等统一配置平台中直接进行配置,假定选择配置的是json格式的数据(轻量级的数据交换格式)等。配置节点和数据如图6所示例子,从上到下依次type:3(表示上下户类型)、role:1(表示节点/环节参与角色)、sortid:0(表示排序)、type:3完成事件类型、result:1(节点处
理结果)、param:完成事件参数信息,等等。
74.由此形成当前应用场景对应的模板。
75.可见,本发明的该实施例中,无需开发接入就能灵活调整管理运营的策略,应对更多的服务场景。比如,调整参与角色和/或顺序(节点完成事件),甚至包括相关的消息推送和日志记录等,灵活机动,简单快速高效。
76.配置模块120,用于基于所述模板,根据不同的应用场景进行不同的配置以动态调整上、下户管理。
77.具体比如:通过模板获取对应的配置数据和模板的数据的使用过程,即程序开发时任务配置中的配置解析和任务流转两个部分。
78.一个实施方式中,提供前端交互界面由用户操作完成,具体地,客户端app打开,通过可交互的配置界面,进行配置,并将配置存储到连接到的服务器端的配置平台等。
79.进一步,通过交互提供(例如输入)的模板所需的参数,配置各个节点所需要的数据后进行缓存如redis缓存,模板根据缓存的各个参数的具体数据数值等直接构建消息提醒、日志记录。
80.进一步,通过界面交互方式,基于所述模板对不同的开发所对应的应用场景/场合进行相应的配置,例如按模板参数进行录入,并缓存相应参数的数据,尤其是缓存各个节点所需要的数据。按照不同的场合确定不同的节点排序,由此能动态改变信号流的方向。
81.进而,当各个节点对应不同的场合时,所述模板调取缓存的数据,对应不同场合,提供不同排序的节点的数据,并直接构建消息提醒、日志记录等,从而能够实现整个系统不同的应用场景相应的不同的上下户管理,即动态调整管理策略,无需每个场景的开发重新接入,同时,从缓存的数据中进行直接调取和构建消息、日志等,也能有效减少重复查询的消耗。
82.承前述家政服务的应用的例子:
83.该例子中将具体描述对应该模板,进行配置解析和任务流转,即获取各类型参数的数据并使用的过程。配置解析部分至少包括:节点解析器、任务流程处理等;任务流转至少包括:任务完成事件处理等。
84.在运行过程中,启动服务或修改配置后,会从数据库读取存储的配置数据,例如:第一步:按照新建的每个流程读取对应该流程中的节点,这些节点根据流程形成节点上的排序顺序,放入队列中(如前述配置过程中新建流程下创建的节点);第二步:遍历该队列中所有节点,依据每个节点去完成事件表中读取节点对应的完成事件配置(如前述配置过程中对应创建的节点创建的完成事件);第三步:解析完成事件的数据,如果完成事件的类型对应是预设类型(如:记的日志、短信、app推送、即时消息等),则可以将完成事件的这些类型对应的参数转化成对应类型的实体,然后将完成称事件的实体添加到队列中对应的节点上;如果完成事件的类型对应为未预设类型,则可以通过完成事件配置上的例如方法类型、方法名等查找服务中的服务的方法类从而通过诸如javaassist字节码等创建非预设的完成事件实体类,同样,再将完成称事件的实体添加到队列中对应的节点上;第四步:缓存节点队列数据(如通过redis缓存),关键字key可以采用任务类型和节点对应角色,通过这两个参数能精确定位到队列中指定的节点。
85.进一步,当用户发起了上下户任务流程时,通过任务类型和起始角色读取之前
redis缓存的任务流程节点,此时就能确定一次任务流转中各个节点的顺序。例如:步骤1、读取节点,按节点创建任务明细(任务明细负责记录任务环节的执行角色和执行状态,创建时都是待处理状态);步骤2、判断当前发起用户的角色,获取对应角色的节点的完成事件实体类;步骤3、将本次操作的订单服务数据创建统一的数据实体,放入redis,以供后续一系列完成事件重复使用,减少查询时间,提高效率;步骤4、遍历执行节点的完成事件实体的dofinish方法。
86.可见,本发明的该实施方式只需要改变服务器端对应不同应用场景的节点的排序,即信号的流向而客户端不需要有任何改变,不受到影响,不需要每改变一次场景都重新进行开发接入,开发效率和系统性能都有所提升,整体代码更加简化简洁。
87.由此,本发明的提供的技术方案,通过业务类型(上户,下户,请假,工资确认),参与角色,节点完成事件(包含日志记录,消息提醒)确定了一套模板,产品只用通过界面配置这套模板,无需开发接入,就能灵活的调整运营的策略,调整参与的角色和顺序,以及相关的消息推送和日志记录。而在流程执行中,缓存了各个节点需要的数据,模板能通过缓存数据直接构建消息提醒,日志记录,减少了重复查询消耗,提高性能。基于配置预定模版参数和缓存数据的方式,便于适应场景的开发以及运行的效率,本发明在程序开发适应不同应用场景的技术上,提高了开发效率,节约了开发人力成本并减短了开发周期,其提高了系统性能,同时整体代码更加简洁。
88.【实施例3】
89.下面结合应用场景的一个例子对本发明的方案的实现进行进一步说明。
90.在服务器端进行服务过程管理程序的开发时,先编制一套模板。其中,至少基于应用场景中主要涉及的多种服务过程管理方式等、以及在开发的程序运行时对服务过程管理中出现的节点完成事件等的调用访问等,预设相应的参数,包括但不限于以下一种或多种:业务类型(包括但不限于上户、下户、请假、工资确认等),参与角色(包括但不限于经纪人、客户、劳动者等),节点完成事件(包括但不限于:日志记录、消息提醒等)。次预设的参数不是穷举,主要是根据开发程序时相关的服务过程管理方式和服务过程管理的节点事件进行预设,且根据不同的应用场景还可以调整:增加、减少、或预设默认值等。
91.上户例如:经纪人代客户操作上户、劳动者客户两方确认上户、劳动者客户经纪人三方确认上户等。下户也有类似例子。
92.确定了所述参数模板后,提供可交互的界面,在适应具体的应用场景或者说具体的场合时,开始基于该模板对运行于该场合的程序进行配置,配置时,各个节点(运行或者说执行到程序的一个阶段)可以根据不同场合进行不同的对应排序,即配置时,不同场合下先到哪个阶段后到哪个阶段的顺序是不同的,也就是说,整个服务过程管理程序能够适应不同的场合配置时就使信号流的方向发生对应改变,实现整个程序能对应不同的应用场景,这样,服务过程管理的程序即可完成开发。
93.在运行该程序而执行整个服务过程管理的流程中,节点排序不同,对某个场合来说,其配置时就可以与其他场合的过程不同,使信号流的方向发生有对应该场合的改变,实现了匹配场合的动态调整,比如上户、下户等管理,实现整个程序适应不同的应用场景只在服务器端节点顺序信号流的转向。并且,在运行时,缓存了各个节点需要的数据,模板能通过缓存数据直接构建消息提醒,日志记录,还有效减少重复查询消耗、减少开发资源投入、
进一步提高程序运行的性能。
94.进一步,开发程序只需要在服务器端进行参数模板构建、以及通过界面交互对相应的场景利用模板做配置,即可动态调整节点顺序完成对应场合大的开发,并不影响客户端的执行,无需更多的接入开发过程,程序代码得到简化,有助于提升用户体验。
95.具体一个实施例如图6所示的根据本发明的技术方案的一个应用场景的实施例中任务配置场景示例中预设类型参数的例子。
96.对于任务配置场景,对任务配置结构进行分析确定需要编制的一套模板涉及的参数、节点等内容。对于任务配置来说,至少需要配置数据、配置解析和任务流转三个主要部分。配置数据部分至少包括:配置流程(属性至少包括:类型、起始角色等)、配置节点(属性至少包括:角色、排序等)、完成事件模板等;配置解析部分至少包括:节点解析器、任务流程处理等;任务流转至少包括:任务完成事件处理等。
97.编制一套模板时对于配置数据的配置说明的一个例子,具体以本发明的方案应用在一个家政服务的业务场景中配置数据的配置说明的例子:配置说明中至少包括:配置内容、流程类型说明、流程节点说明、完成事项说明等。
98.其中配置内容例如:
99.上户:在节点0的角色家政阿姨之后的节点1对应角色是经纪人和客户;在节点0的角色经纪人之后的节点1对应角色是阿姨、节点2对应角色是客户。
100.下户:节点0角色阿姨之后节点1对应角色客户;节点0角色客户之后节点1对应角色服务器端提供的处理(平台/系统/app的服务端等);节点0角色经纪人之后节点1对应角色阿姨、节点2对应角色客户。
101.工资:节点0角色阿姨之后节点1对应角色客户。
102.请假1:节点0角色阿姨之后节点1对应角色客户。
103.请假2:节点0角色阿姨之后节点1对应角色客户。
104.等等。
105.其中流程类型说明例如:
106.业务类型(各自编号):上户
‑
1、下户
‑
3、工资
‑
2、请假1
‑
4、请假2
‑
7。
107.第一个节点角色(各自编号):家政阿姨
‑
1、客户
‑
2、经纪人
‑
3、服务器端处理系统
‑
0。
108.等等。
109.其中流程节点说明例如:
110.节点角色:家政阿姨、客户、经纪人、服务器端处理系统。
111.节点排序:从0(节点)开始。
112.等等。
113.其中完成事项说明例如:
114.完成事项类型(各自编号):日志
‑
1、短信
‑
2、即时通信(如钉钉)
‑
3、app推送
‑
4。
115.事项参数示例:日志格式的消息内容、日志类型等;短信的接收角色、短信模板id等;即时通信的接收角色、消息标题、消息内容等;app推送的接收角色、消息标题等;待办卡片的接收角色、卡片信息、卡片跳转链接等。
116.等等。
117.对于编制的模板,进行配置。比如承前述模板和家政服务的例子,通过服务器端的统一配置平台进行配置,假定选择配置的是json格式的数据(轻量级的数据交换格式),简捷快速实现不同应用场景变化的动态的配置维护:运营方按照编制的模板,对应实际应用场景进行配置。其中,可以预设每个节点中的参数,包括例如下列这些类型:上、下户日志记录,短信、即时消息、app消息推送、app首页代办卡片等。未预设的类型可以是服务器端自行预先构建的例如支持dsf接口调用的框架中的服务相关的类型。
118.配置过程中,首先,运营方对于新建流程可以通过选择品类和城市、选择业务类型、选择起始节点角色,生成对应编制的模板的“流程”模板对象;进而,运营方对于创建节点可以通过选择节点角色、确定节点序号,生成对应编制的模板的“节点”模板对象;再进一步,运营方对于创建完成事件可以通过判断事件类型,分别对已预设类型编辑事件模板、对未预设的类型输入接口名和参数模板,生成对应编制的模板的“事件”模板对象;并将配置后的该模板缓存,同时缓存了各节点、事件和流程相关的数据。由此配置,简单而便捷,无需在开发接入。
119.进一步,承前述家政服务的例子中,启动新建的匹配应用场景的管理服务中,可以进行配置解析。具体地,在运行过程中,启动服务或修改配置后,会从数据库读取存储的配置数据,例如:
120.第一步:按照新建的每个流程读取对应该流程中的节点,这些节点根据流程形成节点上的排序顺序,放入队列中(如前述配置过程中新建流程下创建的节点);
121.第二步:遍历该队列中所有节点,依据每个节点去完成事件表中读取节点对应的完成事件配置(如前述配置过程中对应创建的节点创建的完成事件);
122.第三步:解析完成事件的数据,如果完成事件的类型对应是预设类型(如:记的日志、短信、app推送、即时消息等),则可以将完成事件的这些类型对应的参数转化成对应类型的实体,然后将完成称事件的实体添加到队列中对应的节点上;如果完成事件的类型对应为未预设类型,则可以通过完成事件配置上的例如方法类型、方法名等查找服务中的服务的方法类从而通过诸如javaassist字节码等创建非预设的完成事件实体类,同样,再将完成称事件的实体添加到队列中对应的节点上。
123.其中,完成事件实体类可以包括dofinish方法,调用该方法可以执行完成事件;预设类型的时间实体类的dofinish方法是已经确定的提前编写成事件实体类在服务中,从而在初始化任务配置时只需要将配置数据中完成事件的参数填充到对应类型的实体类的属性上即可;而未预设类型需要通过比如方法类型和方法名去查找服务中对应的方法、再通过字节码等方式将查到的方法内容填入一个控事件实体类的dofinish方法中,完成调用。
124.其中,预设类型对应的完成事件实体例如可以包括:
125.记日志实体,包含如消息内容、日志类型两个属性。消息内容可以是一行日志文本,其中变量通过指定的占位符替代了,例:${worker}发起了${upseltime}的上户。执行dofinish方法时,使用订单服务数据中和占位符名称相关的对应属性的值替换占位符,组装出日志文本,然后调用第三方日志服务进行推送。
126.短信实体,包含如接收角色、短信模板id。执行dofinish方法时,通过接收角色获取订单服务中对应角色的手机号,然后调用第三方短信服务,通过手机号推送对应短信模板id的短信。
127.即时通信实体,包含如接收角色、消息标题、消息内容。消息内容和前述日志文本一样,不再赘述。执行dofinish方法时,通过接收角色获取订单服务中对应角色的账号id,然后调用第三方即时通信服务,通过账号id推送对应消息内容的即时通信消息。
128.app推送实体,包含如接收角色、消息标题、消息内容、属性与即时通信事件类似。执行dofinish方法时,通过接收角色获取订单服务中对应角色的账号id,然后调用第三方apppush服务,通过账号id推送对应消息内容的push消息(这里的app例如各种家政app:鹅到家、阿姨一点通、到家家政员工端等)。
129.待办卡片实体,包含如接收角色、卡片信息、卡片跳转链接。执行dofinish方法时,通过接收角色获取订单服务中对应角色的账号id,然后调用第三方卡片服务,通过账号id推送对应消息内容的卡片(待办卡片例如可以是各种家政服务app中首页的一种消息通知格式)。
130.第四步:缓存节点队列数据(如通过redis缓存),关键字key可以采用任务类型和节点对应角色,通过这两个参数能精确定位到队列中指定的节点。
131.再进一步,承前述家政服务的例子,在对应场景配置后的服务运行过程中,任务流转变化具体如:在用户发起了上下户任务流程时,通过任务类型和起始角色读取之前redis缓存的任务流程节点,此时就能确定一次任务流转中各个节点的顺序。例如:步骤1、读取节点,按节点创建任务明细(任务明细负责记录任务环节的执行角色和执行状态,创建时都是待处理状态);步骤2、判断当前发起用户的角色,获取对应角色的节点的完成事件实体类;步骤3、将本次操作的订单服务数据创建统一的数据实体,放入redis,以供后续一系列完成事件重复使用,减少查询时间,提高效率;步骤4、遍历执行节点的完成事件实体的dofinish方法。
132.具体家政业务/家政服务的任务使用场景示例如下:
133.上户:开始服务;
134.下户:结束服务;
135.劳动者:通过应用程序app和/或网络/平台接收服务请求提供服务的一方,能操作上户和下户(业务/服务的提供者);
136.客户:通过应用程序app和/或网络/平台发送/提出服务请求的一方,能操作上户和下户(服务需求者);
137.经纪人:能代客户操作上户或协助参与完成上户的第三方(业务/服务里的企业内部员工)。
138.例1:上户场景
139.以两种上户流程来说明:
140.流程一:由家政阿姨发起,客户和经济人两方进行确认;
141.流程二:由经纪人发起,家政阿姨先确认、客户再确认;
142.发起上户并确认后,在创建任务和更新任务时,即触发任务流转逻辑。
143.根据本发明的方案的该实施例,后续新增新流程或者修改流程中的日志内容、消息、即时通信、推送push、卡片等,在服务端都无需修改,仅需调整配置内容即可,例如,用户发起上户时本来只给劳动者推送push消息,后面想再给客户推送时,就无需开发,仅添加配置,就能实现给客户推送;再例如,之前只支持劳动者和经纪人发起上户,其余两方确认上
户的流程,后面改变为也支持客户发起,那么场景改变会新增一套配置,节点顺序可以定为客户、劳动者、经纪人这样的情形,就能实现客户发起而劳动者和经纪人确认的流程,也无需开发接入。进一步,本发明的编制模板进行配置的方式,提高了代码复用性,其建立了统一的任务流程处理,并且将记日志、消息推送、即时通信等高频的操作抽象成了统一的逻辑,无需重复开发,仅需配置即可;而在记日志和消息推送时需要的重复参数,就不再是单独环境都进行查询,有统一的数据缓存,提高了系统性能和响应时间
144.c、如何就简化了代码?
145.之前上户,下户的记日志,消息推送都是独立的代码方法,后续靠这套灵活可配置的上下户管理方法,统一成了一套,减少了代码量,并且后续新增其他流程,也无需新增代码
146.由此,通过本发明的该实施例,提高了开发效率、节约了开发人力成本和资源、减短开发周期、提高了系统性能,并且、代码更加简洁,更容易实现动态调整,任务流转逻辑变化更方便。另外,瘦客户机制也有助于提升用户体验。
147.【实施例4】
148.图3是根据本发明的一个实施例的电子设备的结构示意框图,该电子设备包括处理器和存储器,所述存储器用于存储计算机可执行程序,当所述计算机程序被所述处理器执行时,所述处理器执行如前述实施例1、3中的方法。
149.如图3所示,电子设备以通用计算设备的形式表现。其中处理器可以是一个,也可以是多个并且协同工作。本发明也不排除进行分布式处理,即处理器可以分散在不同的实体设备中。本发明的电子设备并不限于单一实体,也可以是多个实体设备的总和。
150.所述存储器存储有计算机可执行程序,通常是机器可读的代码。所述计算机可读程序可以被所述处理器执行,以使得电子设备能够执行本发明的方法,或者方法中的至少部分步骤。
151.所述存储器包括易失性存储器,例如随机存取存储单元(ram)和/或高速缓存存储单元,还可以是非易失性存储器,如只读存储单元(rom)。
152.可选的,该实施例中,电子设备还包括有i/o接口,其用于电子设备与外部的设备进行数据交换。i/o接口可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
153.更具体地,参见图4所示的该实施例所述的电子设备的更具体的一个例子的结构框图。该示例性实施例的电子设备200以通用数据处理设备的形式表现。电子设备200的组件可以包括但不限于:至少一个处理单元210、至少一个存储单元220、连接不同系统组件(包括存储单元220和处理单元210)的总线230、显示单元240等。
154.其中,所述存储单元220存储有计算机可读程序,其可以是源程序或都只读程序的代码。所述程序可以被处理单元210执行,使得所述处理单元210执行本发明各种实施方式的步骤。例如,所述处理单元210可以执行前述实施例1方法的各个步骤。
155.所述存储单元220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)2201和/或高速缓存存储单元2202,还可以进一步包括只读存储单元(rom)2203。所述存储单元220还可以包括具有一组(至少一个)程序模块2205的程序/实用工具2204,这
样的程序模块2205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
156.总线230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
157.电子设备200也可以与一个或多个外部设备300(例如键盘、显示器、网络设备、蓝牙设备等)通信,使得用户能经由这些外部设备300与该电子设备200交互,和/或使得该电子设备200能与一个或多个其它数据处理设备(例如路由器、调制解调器等等)进行通信。这种通信可以通过输入/输出(i/o)接口250进行,还可以通过网络适配器260与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)进行。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,电子设备200中可使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
158.应当理解,图3、4显示的电子设备仅仅是本发明的一个示例,本发明的电子设备中还可以包括上述示例中未示出的元件或组件。例如,有些电子设备中还包括有显示屏等显示单元,有些电子设备还包括人机交互元件,例如按扭、键盘等。只要该电子设备能够执行存储器中的计算机可读程序以实现本发明方法或方法的至少部分步骤,均可认为是本发明所涵盖的电子设备。
159.【实施例5】
160.图5是本发明的一个实施例的计算机可读记录介质的示意图。如图5所示,计算机可读记录介质中存储有计算机可执行程序,所述计算机可执行程序被执行时,实现本发明上述的题目识别方法。所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
161.可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
162.通过以上对实施方式的描述,本领域的技术人员易于理解,本发明可以由能够执行特定计算机程序的硬件来实现,例如本发明的系统,以及系统中包含的电子处理单元、服务器、客户端、手机、控制单元、处理器等,本发明也可以由包含上述系统或部件的至少一部分的车辆来实现。本发明也可以由执行本发明的方法的计算机软件来实现,例如由机车端
的微处理器、电子控制单元,客户端、服务器端等执行的控制软件来实现。但需要说明的是,执行本发明的方法的计算机软件并不限于由一个或特定个的硬件实体中执行,其也可以是由不特定具体硬件的以分布式的方式来实现,例如计算机程序执行的某些方法步骤可以在机车端执行,另一部分可以在移动终端或智能头盔等中执行。对于计算机软件,软件产品可以存储在一个计算机可读的存储介质(可以是cd
‑
rom,u盘,移动硬盘等)中,也可以分布式存储于网络上,只要其能使得电子设备执行根据本发明的方法。
163.通过以上对实施方式的描述,本领域的技术人员易于理解,本发明本发明描述的示例性实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。
164.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。