软件应用定制方法及开发服务端与流程

文档序号:19154800发布日期:2019-11-16 00:35阅读:218来源:国知局
软件应用定制方法及开发服务端与流程

本发明属于软件开发技术领域,尤其涉及一种软件应用定制方法及开发服务端。



背景技术:

目前的软件应用的操作流程一般都需要都涉及与用户的交互,这种不确定的外部交互因素会给用户实际使用中的业务流增加了很多的无法预测性。各个业务流程之间的跳转逻辑的复杂性会大大增加实际开发的逻辑漏洞的概率。而且,由于现在很多的业务都需要根据用户需求定制业务服务,如果直接在代码中的管理跳转流程会大大降低了不同用户的相似定制业务流程的复用性。

目前市面上已有的产品大多数都是通过在代码中直接实现业务流程逻辑管理。这些针对业务跳转逻辑基本上通过链表、栈、树、表等数据结构的辅助在代码中实现。

然而,这些在代码中直接实现业务逻辑的管理流程都存在扩展性差的缺陷,这是因为对应的流程相对比较定式,之后进行逻辑调整或者扩展的时候工作量大且不易实现。并且,当业务逻辑扩展到一定规模的时候,代码内部实现逻辑跳转会非常复杂,很容易造成错误或者逻辑漏洞。

在用户定制软件应用的过程中,即便不同用户的业务流程相似度极高,而一些微小的变动也会使得代码无法复用,需要手动修改代码,大大降低了开发效率。



技术实现要素:

本发明实施例提供一种软件应用定制方法及开发服务端,用于至少解决上述技术问题之一。

第一方面,本发明实施例提供一种软件应用定制方法,应用于开发服务端,包括:获取软件定制请求,所述软件定制请求包括软件业务流程;解析所述软件业务流程中的各个请求业务节点,并检测在节点代码库中是否存在与所述各个请求业务节点相匹配的目标设定业务节点,所述节点代码库存储有与多个设定业务节点分别相对应的多个标准节点代码;基于所述节点代码库中与所述目标设定业务节点相对应的目标标准节点代码,配置软件应用程序。

第二方面,本发明实施例提供一种软件应用定制方法,应用于软件开发客户端,包括:获取用户操作,并生成响应于所述用户操作的软件定制请求,所述软件定制请求包括软件业务流程;发送所述软件定制请求至开发服务端,以使得所述开发服务端基于节点代码库和所述软件业务流程中的各个请求业务节点配置软件应用程序,所述节点代码库存储有与多个设定业务节点分别相对应的多个标准节点代码。

第三方面,本发明实施例提供一种开发服务端,包括:定制请求获取单元,用于获取软件定制请求,所述软件定制请求包括软件业务流程;业务节点匹配单元,用于解析所述软件业务流程中的各个请求业务节点,并检测在节点代码库中是否存在与所述请求业务节点相匹配的目标设定业务节点,所述节点代码库存储有与多个设定业务节点分别相对应的多个标准节点代码;软件配置单元,用于基于所述节点代码库中与所述目标设定业务节点相对应的目标标准节点代码,配置软件应用程序。

第四方面,本发明实施例提供一种开发客户端,包括:定制请求生成单元,用于接收用户操作,并生成响应于所述用户操作的软件定制请求,所述软件定制请求包括软件业务流程;定制请求发送单元,发送所述软件定制请求至开发服务端,以使得所述开发服务端基于节点代码库和所述软件业务流程中的各个请求业务节点配置软件应用程序,所述节点代码库存储有与多个设定业务节点分别相对应的多个标准节点代码。

第五方面,本发明实施例提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述方法的步骤。

第六方面,本发明实施例提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。

本发明实施例的有益效果在于:开发服务端解析源自软件开发客户端的软件定制请求中的软件业务流程,将所得到的各个请求业务节点与节点代码库中的多个设定业务节点进行匹配,以确定相匹配的目标设定业务节点在库中的目标标准节点代码,从而配置软件应用程序。由此,基于节点代码库中相关联的设定业务节点和对应的标准节点代码,实现了复用相匹配的业务节点所对应节点代码,提高了软件开发效率。

附图说明

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

图1为本发明实施例的软件应用定制方法的流程图;

图2为本发明实施例的软件应用定制方法的流程图;

图3为本发明实施例的开发服务端的结构框图。

具体实施方式

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

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

在本发明中,“模块”、“系统”等等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。

最后,还需要说明的是,在本文中,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

如图1所示,本发明实施例的软件应用定制方法的示例性流程,其涉及在开发客户端10和开发服务端20之间进行通信交互。这里,客户端可以是任意类型的诸如笔记本电脑、平板电脑、手机之类的终端设备,例如其可以是安装有特定应用程序的终端设备。另外,服务端可表示中心通信网络架构中的服务器或对等通信网络架构中的用于提供服务的主节点设备。

如图1所示,本发明实施例的软件应用定制方法的流程包括:

步骤101、开发客户端10接收用户操作。

这里,在开发客户端10上可显示供用户拖拽调整的多个业务节点框的图形化界面,然后用户可通过对这些业务节点框进行配置操作。另外,这些业务节点框可用于指示业务节点的节点数据,例如节点名称、节点响应动作信息、软件定制信息、后续节点跳转信息和/或节点辅助配置参数等。进而,开发用户可通过对业务节点框所指示的节点数据进行个性化的调整和修改,例如补充软件定制信息、修改后续节点跳转信息等。由此,用户通过针对业务节点框的操作能够在用户界面上生成对应的软件业务流程。

步骤102、开发客户端10根据所接收的用户操作生成软件定制请求。

示例性地,开发客户端10根据软件业务流程生成软件定制请求。

步骤103、开发服务端10发送软件定制请求至开发服务端20。

步骤104、开发服务端20解析软件业务流程中的各个请求业务节点。

步骤105、开发服务端20检测在节点代码库中是否存在与请求业务节点相匹配的目标设定业务节点,节点代码库存储有与多个设定业务节点分别相对应的多个标准节点代码。

示例性地,在节点代码库中针对各个设定业务节点的标准节点代码可以是以json的数据格式而进行封装的结构,其被称为服务组件模块(或软件程序组成模块)。这里,节点代码库可以使用诸如mongo之类的数据库,在mongo数据库中配置每一个设定节点的信息,例如节点名称、节点参数、执行的动作、下一个的跳转到的节点名称等等信息。由此,实现了代码工作和业务流程的关联和相对解耦合。

在一些实施方式中,开发客户端10上所显示的至少一个业务节点框用于指示节点代码库中相对应的设定业务节点,而又由于这些业务节点框被用作构建相应的软件业务流程,使得由用户所上传的软件业务流程中能够具有相对应的至少一个(或全部的)设定业务节点。

步骤106、基于节点代码库中与目标设定业务节点相对应的目标标准节点代码,配置软件应用程序。

具体的,当软件业务流程中的各个请求业务节点都能在节点代码库找到匹配的目标设定业务节点时,可按照软件业务流程中各个请求业务节点所对应的顺序,对所确定的针对请求业务节点的目标标准节点代码进行配置,以生成软件应用程序。

在本发明实施例中,在配置软件应用程序的过程中,可以复用节点代码库中的目标标准节点代码,提高了软件的开发效率。

在一些应用场景下,当在节点代码库中存在与第一请求业务节点相匹配的第一目标设定业务节点,且不存在与第二请求业务节点相匹配的第二目标设定业务节点时,获取针对第二请求业务节点的节点代码。示例性地,可以接收由开发人员所输入的节点代码以作为针对未在库中存储的针对第二请求业务节点的节点代码。接着,基于节点代码库确定第一目标设定业务节点所对应的目标标准节点代码。接着,基于所确定的第一请求业务节点所对应的目标标准节点代码和所获取的节点代码,配置软件应用程序。这样,在节点代码库中没有对应的节点代码时,可由开发人员进行补充。

作为进一步的公开和优化,可将所获取的节点代码作为针对第二请求业务节点的标准节点代码而相对应地存储至节点代码库。这样,在开发服务端下一次收到同样类型的第二请求业务节点时,可直接从节点代码库中调用相应的标准节点代码进行软件配置操作,而不需要再次由开发人员再次输入节点代码。进一步地,也可以按照软件业务流程中所述各个请求业务节点所对应的顺序对各个目标标准节点代码进行配置,从而生成软件应用程序。

可理解的是,在完成了针对软件应用程序的配置操作之后,可将软件应用程序反馈至开发客户端,或者将软件应用程序直接发送至开发用户(或业务厂商)所对应的运营服务器,以进行相应的业务服务操作。

由此,对于不同的开发用户的业务定制,相似逻辑流程直接节点复用即可,把需要的业务节点组件组合配置构成对不同用户定制的业务流程,使得开发用户无需理解程序代码,而只需要传入不同的用户自己的参数,甚至不需要手动开发,大大节省了开发的投入成本。

在后期业务维护而需要对业务流程进行修改时,只需要找到对应的服务节点,并修改相应的执行动作或者跳转下一个节点信息的配置即可。在节点代码库存中被拆分为小粒度的节点及对应的代码组件,使得服务复用性大大提升,也大幅度提升了修改和更新操作的效率。由此,实现了灵活地保持、切换、回溯到特定开发用户想要的业务主题。

进一步地,由于业务流程的各个节点对应于标准节点代码,使得可直接与前端(即开发客户端)配合,生成可视化的软件应用定制系统。之后,针对特定客户的软件应用程序的定制操作只需要在可视化界面进行业务节点(或业务节点框)的配置组装即可,完全摆脱了二次开发的约束,实现了业务定制和代码开发的解耦。

如图2所示,本发明实施例的软件应用定制方法的流程图。其中,利用json数据结构实现了用户业务的定制化服务与代码开发工作的相对解耦,尽可能的避免重复相似的业务流程的二次开发。也就是,把通用的业务需求拆分成一个个小粒度业务“节点”,便于定义的业务的高可复用性。

在如图2所示的软件应用定制方法的流程中,主要包括针对json定义库的建库过程和用库过程。

其中,在建库过程中主要包括:

1)收集业务需求。

2)根据业务需求确定针对定义业务流程的业务流程图。

3)根据业务流程图中的各个业务节点形成对应的json文件。

4)将json文件和对应的业务节点入库以形成json定义库。

5)基于json定义库中的相关json定义生成流程实例,并将所生成的流程示例存入流程实例池。

需说明的是,虽然在图2示中是利用流程实例池进行匹配操作来配置软件程序,但可理解的是,直接利用json定义库中的各个业务节点所对应的服务组件模块进行匹配操作来配置软件程序,也属于本发明的保护范围内。

其中,在用库过程中主要包括:

1)通过开发客户端发出软件定制请求。

2)开发服务端根据软件定制请求获取json定义名称。

3)判断在流程示例池中是否存在所获取的json定义名称,若不存在,则报错退出。

4)根据json定义名称获取流程实例对象。

5)基于所获取的流程示例对象判断是否找到可处理的流程节点。

6)若找到,则根据用户输入生成对应的软件应用程序;而若未找到,则执行json库优化流程以完善针对用户输入的json定义或相应的服务组件模块。

在本实施例中,在用户发起软件定制请求后,在json定义库中查询是否存在已有的业务流程。如果有,则直接服务用户,如果没有,则先分析用户的业务需求。根据需求拆分为需求的业务“节点”,根据定制化流程图,组装json定义库中可以找到的可复用的“节点”。如果没有某些定制化的业务流程,则新增json结构,并且加入json库,后续业务需求也可以利用。之后根据这些json业务“节点”按照分析的客户定制流程组装成最后的业务流程实例,进行服务。

本发明实施例可被应用于各种应用场景,对此应不加限制。示例性地,可以将本发明实施例应用在智能语音客服的场景中。

在智能语音客服场景中,对话管理(dm)因为用户应答很大的不确定性使得其成为典型的业务场景跳转管理中较为复杂的应用场景。

dm是对话系统的大脑,其主要处理两方面的事务:

a)维护和更新对话的状态。对话状态是一种机器能够处理的数据表征,包含所有可能会影响到接下来决策的信息,如自然语言理解(nlu)模块的输出、用户的特征等。

b)基于当前的对话状态,选择接下来业务流程合适的应答动作。举例来讲,用户说「帮我叫一辆车回家」,此时对话状态包括nlu模块的输出、用户的位置、历史行为等特征。在这个状态下,系统接下来的动作可能有几种:1)向用户询问起点,如「请问从哪里出发」;2)向用户确认起点,如「请问从公司出发吗」;3)直接为用户叫车,「马上为你叫车从公司回家」。按照这样的流程,根据用户动作完成针对性的业务逻辑的自动跳转是智能语音客服产品实现的基本。

通过本发明实施例,使用json定义可以实现低成本、高复用的灵活智能客服对话管理业务流程定制化方案设计。针对已有的快递公司的智能客服产品,在新的快递公司客户需要相似的业务场景产品的时候,首先梳理客户的业务场景需求整体流程,把功能拆分为几个大的场景模块,例如下单场景、催单场景、转人工场景和订单查询场景等等。这里,每个场景模块需要对应地配置逻辑流程需求。

另外,以下单的业务场景举例。不同的快递公司都会有自己的下单流程,但是基本的业务逻辑都是相似的。比如,下单场景中当用户的电话打入,都会进入欢迎场景:「欢迎致电xx物流,对我说自助下单可以自动下单」。这样,下单欢迎业务节点通过参数变量的设置可以针对不同的客户可以把xx更改为对应公司(即软件定制厂商)的名称。再根据用户的动作,进行分析决定下面跳转的目的节点。

具体的,在每个json的业务节点中的配置可以分为五个主要的部分。1)对应的业务场景名称,例如“下单场景”;2)对应的节点响应动作,例如“语音询问地址/获取补充的填槽信息/转人工接入”等;3)对应的业务定制信息,用于根据不同用户变量信息补全预留的定制化信息;4)下一步的跳转信息,在此节点动作结束后根据不同的用户响应跳转到的不同的业务节点的名称;5)其他用户动作的对应参数信息和节点的其他配置参数。

上述的欢迎场景节点就是典型的高复用的节点,很多的客户业务产品需求都会涉及这个节点配置,这种类型的节点就会配置到mongo通用业务场景数据库中。

但是,用户定制需求可能会对应特殊的业务流程。例如,当a快递公司的下单流程中识别出快递物品属于违禁品或者活物,需要告知用户,支持其更正为正常物品。如果用户说了“继续下单”,则返回到之前下单流程。而这些业务特殊定制化的相关需求相关的节点可能无法在数据库中找到对应的设定业务节点,此时需要在库中新增节点和对应的服务组件模块,根据对应逻辑流程进行配置。

进而,在节点配置完成后,按照模块分别从软件专属数据库和业务通用数据库中调用相关的业务节点,根据逻辑的先后进行每个节点的下一跳转位置的设置。通用节点的参数信息根据软件定制信息对应获取客户提供的信息进行填补。按照流程逻辑进行节点的组装,完成最终的软件程序的配置操作。

如图3所示,本发明一实施例的开发服务端300,包括定制请求获取单元310、业务节点匹配单元320和软件配置单元330。这里,定制请求获取单元310用于获取软件定制请求,所述软件定制请求包括软件业务流程。业务节点匹配单元320用于解析所述软件业务流程中的各个请求业务节点,并检测在节点代码库中是否存在与所述请求业务节点相匹配的目标设定业务节点,所述节点代码库存储有与多个设定业务节点分别相对应的多个标准节点代码。软件配置单元330用于基于所述节点代码库中与所述目标设定业务节点相对应的目标标准节点代码,配置软件应用程序。

上述本发明实施例的装置可用于执行本发明中相应的方法实施例,并相应的达到上述本发明方法实施例所达到的技术效果,这里不再赘述。

本发明实施例中可以通过硬件处理器(hardwareprocessor)来实现相关功能模块。

另一方面,本发明实施例提供一种存储介质,其上存储有计算机程序,该程序被处理器执行如上的软件应用定制方法的步骤。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。

本申请实施例的客户端以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)其他具有数据交互功能的电子装置。

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

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

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