目标对象启动方法和业务程序系统与流程

文档序号:12596477阅读:209来源:国知局
目标对象启动方法和业务程序系统与流程

本发明涉及互联网技术领域,特别涉及一种目标对象启动方法和业务程序系统。



背景技术:

目前,对于一个网络架构,或者是一个公司而言,往往有多个业务程序,当前的方式是为每个业务程序都设置一个入口程序,这种方式可以通过每个业务程序对应的入口程序简单地接入到该业务程序中。

然而,当该网络架构或者该公司的产品,即业务程序过多时,如果仍旧采用为每个业务程序都设置一个入口程序的方式,往往需要较大的代码编写量,会造成很大的编码负担,这显然不是很理想的。

针对上述问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种目标对象启动方法和业务程序系统,以解决现有技术中需要为不同的目标程序分别设置入口程序而导致的代码冗余的技术问题。

在一个方面,本发明实施例提供了一种目标对象启动方法,包括:

获取待启动目标对象的参数信息;

将所述参数信息加入预设的入口程序中;

通过加入了所述参数信息的入口程序配置并启动所述待启动目标对象。

在一个实施方式中,通过加入了所述参数信息的入口程序配置并启动所述目标对象,包括:

通过所述入口程序,以键值对的方式,为所述待启动目标对象配置参数信息,并按照配置的参数信息启动所述待启动目标对象。

在一个实施方式中,所述参数信息包括以下至少之一:配置数据、路径数据、语言和字体。

在一个实施方式中,在获取待启动目标对象的参数信息之前,所述方法还包括:

初始化插件框架,并加载所有的业务程序;

从加载的所有的业务程序中,选择需要启动的业务程序作为待启动目标对象。

在一个实施方式中,所述业务程序包括以下至少之一:渲染客户端、网盘客户端、同步盘、渲染管理服务器、渲染节点程序和云服务程序。

在一个实施方式中,在将所述参数信息加入预设的入口程序中之前,所述方法还包括:

读取与所述目标对象匹配的编译宏;

通过读取的编译宏确定所述入口程序中需要执行的代码。

在另一方面,本发明实施例提供了一种业务程序系统,包括:入口程序、多个业务程序,其中:

通过为所述入口程序输入不同的参数信息,可分别启动所述多个业务程序中的各个业务程序。

在一个实施方式中,所述业务程序包括以下至少之一:渲染客户端、网盘客户端、同步盘、渲染管理服务器、渲染节点程序和云服务程序。

在一个实施方式中,所述入口程序中设置有:Portal字段和sdk字段,其中,所述Portal字段用于指示待启动的业务程序,所述sdk字段用于对待启动的业务程序进行初始化。

在一个实施方式中,所述多个业务程序为通过C++编写的程序。

在本发明实施例中,通过为不同的目标对象配置相同的入口程序,在确定需要启动哪个目标对象的时候,就向入口程序中输入该目标对象对应的参数以实现对该目标对象的启动,通过上述方式解决了现有技术中需要为不同的目标对象分别设置入口程序而导致的代码冗余的技术问题,达到了有效减少重复代码的编辑的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:

图1是根据本发明实施例的目标对象启动方法的方法流程图;

图2是根据本发明实施例的业务程序系统的架构图;

图3是根据本发明实施例的目标对象启动装置的一种结构框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。

发明人考虑到不同的目标对象(或者说目标程序)的入口程序中的代码存在很大的重叠,如果为每个目标对象都编辑一段入口程序,在系统中所存在的对象较多时,无疑有很大的工作负担,为此,发明人考虑到可以设置一个入口程序被所有目标对象公用,从而有效减少代码编辑量。

例如,假设当前的目标对象有:渲染客户端、网盘客户端、通用Windows服务、普通应用程序、普通后台程序等,那么可以将其整合为一体,通过配置文件灵活地指定启动插件,即可以实现同一个入口程序启动不同的业务程序,通过该方式使用的入口程序,代码重用率可以达到95%,并且可以避免因不用业务导致的入口程序重复开发,使得开发人员只需聚焦在业务插件的开发。

具体地,如图1所示,在本例中提供了一种目标对象启动方法,包括以下步骤:

步骤101:获取待启动目标对象的参数信息;

具体地,该参数信息可以包括但不限于以下至少之一:配置数据、路径数据、语言和字体,即,主要是目标对象一些基本的参数设置。

因为在本例中是对通过一个入口程序实现对所有目标对象的启动,因此在获取待启动目标对象的参数信息之前,可以先初始化插件框架,并加载所有的业务程序;从加载的所有的业务程序中,选择需要启动的业务程序作为待启动目标对象。即,所有的业务程序都是集成加载在该插件框架中的,只是在确定需要启动哪个业务程序,就将哪个业务程序作为目标对象,基于该入口程序进行启动。

上述的业务程序可以包括但不限于以下至少之一:渲染客户端、网盘客户端、同步盘、渲染管理服务器、渲染节点程序和云服务程序。

步骤102:将所述参数信息加入预设的入口程序中;

考虑到为了使得入口程序可以兼容不同的业务程序,因此入口程序中的代码是较为综合的,因此,可以编译宏的方式指明对于某个业务程序,启动入口程序中的哪些代码,例如:UPDATER_PORTAL这个编译宏可以表示软件更新应用,SERVICE_PORTAL这个编译宏可以表示服务应用,GOLDENFARM_PORTAL这个编译宏可以表示渲染客户端应用,APP_PORTAL这个编译宏可以表示带界面的应用。

即,在将参数信息加入预设的入口程序中之前,可以读取与目标对象匹配的编译宏;通过读取的编译宏确定入口程序中需要执行的代码。

步骤103:通过加入了所述参数信息的入口程序配置并启动所述待启动目标对象。

为了实现对目标对象中参数的配置,以实现对目标对象的启动,可以采用键值对的方式进行配置,具体的,可以通过入口程序,以键值对的方式,为待启动目标对象配置参数信息,并按照配置的参数信息启动所述待启动目标对象。

在本例中,还提供了一种业务程序系统,如图2所示,可以包括:入口程序、多个业务程序,其中:通过为入口程序输入不同的参数信息,可分别启动多个业务程序中的各个业务程序。

上述的业务程序可以包括但不限于以下至少之一:渲染客户端、网盘客户端、同步盘、渲染管理服务器、渲染节点程序和云服务程序。

上述入口程序中可以设置有:Portal字段和sdk字段,其中,Portal字段用于指示待启动的业务程序,sdk字段用于对待启动的业务程序进行初始化。

在一个实施方式中,入口程序可以包括:基础数据管理、应用类型、插件及插件启动4部分,基础数据管理包括整个系统运行的配置数据、路径数据、语言、字体等,通过键-值对传递到各个插件;应用类型通过编译宏来控制,包括渲染客户端、网盘客户端、通用Windows服务、普通应用程序、普通后台程序等;入口程序跟进配置文件配置,调研SDK的接口来加载所有插件,并调研Portal来启动业务程序。

具体地,配置文件可以是一个ini文件,例如:

[lht.general]

#启动入口程序

portal=com.lht.appplugintemplate_0.9.0

application=GoldenFarm Client

#portal=com.lht.master_2.0.0

#控制程序

sdk=com.lht.controller_2.0.0

#是否以单一实例运行,0表示可以同时运行多个进程实例,1表示同时只能运行一个进程实例

singleinstance=1

#启动时的日志模式,console表示输出控制台,file表示输出到日志文件

startuplogmode=file

[lht.displaying]

#当前界面皮肤

skin=default

#当前程序ICON

icon=main.png

#默认显示的语言

currentlanguage=LHT_zh-CN.qm

#字体文件,用于多语言环境使用

font=wqy-microhei.ttc

fontsize=10

[lht.plugins]

#插件加载管理

exclude=com.lht.controller|com.lht.serviceplugintemplate

在配置文件中设置值,例如上述配置文件中的portal和sdk,即为制定的插件。

所述多个业务程序可以是通过C++编写的程序。

在上例中,主要是为了解决现有技术中所存在的重复开发、浪费资源的问题,由于每个应用软件在业务上都会有差异,而且都需要通过可执行程序执行,而这往往都会存在大量的重复工作及重复代码,并且会增加额外的测试验收工作。通过本发明实施例中的方式,仅需要通过配置文件来控制需要启动的业务程序,同时不需要再额外开发应用程序入口,即可以重用代码,避免了重复开发的工作。

业务程序值得就是业务插件,也是上面配置文件代码中portal设置的值,例如:设置的值是:com.lht.goldenfarmclient_2.0.0,就表明业务程序为渲染客户端,设置的值是com.lht.cloudboxclient_2.0.0,就表明业务程序为网盘客户端,这两个插件即为业务程序。

举例而言,以渲染客户端为例,上面配置文件只需要修改portal=com.lht.goldenfarmclient_2.0.0即可,入口程序会初始化入口程序中的数据,最后读取配置文件portal及sdk,sdk配置插件用于初始化所有插件,portal用于最后运行,这样即可完成插件的运行。具体地,一个业务程序的启动可以包括以下步骤:

S1:将整个入口程序分成基础数据管理、应用类型、插件及插件启动四部分;

S2:通过不同的编译宏来控制应用类型,包括但不限于:渲染客户端、网盘客户端、通用Windows服务、普通应用程序、普通后台程序等;

S3:将所有应用数据、路径数据通过键值的变量传递到各个插件;

S4:读取配置设置语言及字体;

S5:读取配置文件,加载控制程序SDK,进行插件的初始化;

S6:读取配置文件,获取启动程序插件,调研SDK接口ExecutePlugin运行,从而完成整个程序的启动。

即,假设有好几个产品分别为:渲染客户端、网盘客户端、同步盘、渲染管理服务(Master)、渲染节点程序(Slave)、云盘服务程序等,那么所有的程序都是基于这个框架,并且有很多重复的代码,为了解决代码重复的问题,为这些应用程序设置一个启动程序,通过配置文件控制,入口程序会支持带命令行的启动,支持配置文件的初始化,例如:初始化路径、创建所需目录、加载字体、设置语言、界面样式创建等。入口程序通过键值变量将路径数据、字体数据、语言数据等传递到各个插件,入口程序通过配置文件sdk设置值初始化插件框架、加载所有插件,根据portal设置值确定启动那个插件,所有的应用程序可以是基于C++的产品。

基于同一发明构思,本发明实施例中还提供了一种目标对象启动装置,如下面的实施例所述。由于目标对象启动装置解决问题的原理与目标对象启动方法相似,因此目标对象启动装置的实施可以参见目标对象启动方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图3是本发明实施例的目标对象启动装置的一种结构框图,如图3所示,可以包括:获取模块301、加入模块302和配置模块303,下面对该结构进行说明。

获取模块301,用于获取待启动目标对象的参数信息;

加入模块302,用于将所述参数信息加入预设的入口程序中;

配置模块303,用于通过加入了所述参数信息的入口程序配置并启动所述待启动目标对象。

在一个实施方式中,配置模块303可以通过所述入口程序,以键值对的方式,为所述待启动目标对象配置参数信息,并按照配置的参数信息启动所述待启动目标对象。

在一个实施方式中,所述参数信息可以包括但不限于以下至少之一:配置数据、路径数据、语言和字体。

在一个实施方式中,还包括:初始化模块,用于在获取待启动目标对象的参数信息之前,初始化插件框架,并加载所有的业务程序;从加载的所有的业务程序中,选择需要启动的业务程序作为待启动目标对象。

在一个实施方式中,所述业务程序可以包括但不限于以下至少之一:渲染客户端、网盘客户端、同步盘、渲染管理服务器、渲染节点程序和云服务程序。

在一个实施方式中,确定模块,用于在将所述参数信息加入预设的入口程序中之前,读取与所述目标对象匹配的编译宏;通过读取的编译宏确定所述入口程序中需要执行的代码。

从以上的描述中,可以看出,本发明实施例实现了如下技术效果:通过为不同的目标对象配置相同的入口程序,在确定需要启动哪个目标对象的时候,就向入口程序中输入该目标对象对应的参数以实现对该目标对象的启动,通过上述方式解决了现有技术中需要为不同的目标对象分别设置入口程序而导致的代码冗余的技术问题,达到了有效减少重复代码的编辑的技术效果。

本申请中各个实施例所涉及的上述描述仅是本申请中的一些实施例中的应用,在某些标准、模型、方法的基础上略加修改后的实施方式也可以实行上述本申请各实施例的方案。当然,在符合本申请上述各实施例的中所述的处理方法步骤的其他无创造性的变形,仍然可以实现相同的申请,在此不再赘述。

虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。当然,也可以将实现某功能的模块由多个子模块或子单元组合实现。

本申请中所述的方法、装置或模块可以以计算机可读程序代码方式实现控制器按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

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

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

本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请的全部或者部分可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、移动通信终端、多处理器系统、基于微处理器的系统、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

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