基于Artifact的大数据服务组合方法及复合服务组合方法与流程

文档序号:11432297阅读:202来源:国知局
基于Artifact的大数据服务组合方法及复合服务组合方法与流程

本发明涉及数据处理领域,尤其涉及一种基于artifact的大数据服务组合方法,还涉及一种基于artifact的大数据复合服务组合方法。



背景技术:

近年来,随着技术和网络的发展,人们对相关的计算能力、资源集中化、资源利用率的要求越来越高,因而,云计算应运而生,使得人们越来越倾向于将应用和服务部署到云环境中。目前,如何有效的对各种各样的服务进行管理和调用,是云计算面临的一个关键问题。传统的web服务调用方式已经有很多学者进行了研究,但是随着各种各样的大数据服务不断涌现并且web服务调用方式不能直接应用于大数据服务中,使得根据大数据服务的特点,提出一种服务描述文档格式,以满足云计算中根据服务描述文档对大数据服务进行调用的要求是十分必要的。

传统环境下的服务选择和组合的研究已经有了一定进展,但是目前的研究还是以传统的web服务作为研究对象。然而随着各种各样的大数据服务的不断涌现,也为服务组合带来了新的挑战,大数据服务由于本身的特性,有着与web服务不同的一面,但是,目前大数据服务与web服务相对稳定的处理时间不同,大数据服务的处理时间受到输入数据量的影响很大而且处理时间都是较长的,同时因为传统的web服务调用方式和组合方式也不能直接应用于大数据服务中,所以对大数据服务的组合也是云环境下服务组合所面临的另一个关键问题。



技术实现要素:

本发明的目的一是,提供一种基于artifact的大数据服务组合方法,可有效快速的进行大数据处理服务。

本发明的目的二是,提供基于artifact的大数据服务组合方法的一种复合组合方法。

为实现该目的,提供了一种基于artifact的大数据服务组合方法,该方法包括以下处理步骤:

步骤1:模型初始化,将信息载体artifact初始化并且加入到仓库repository中,repository根据用户的输入对artifact的属性进行赋值;

步骤2:将artifact的状态转为转移到hdfs处理transertohdfs的状态,然后执行在nifi服务下的transertohdfs操作,将服务器上的文件传输到hdfs集群上,又通过repository修改artifact中的是转移到hdfs属性istransertohdfs为true;

步骤3:将artifact的状态转为分析处理analysis的状态,然后执行在mapreduce服务下的analysis操作,对hdfs集群上的文件进行日志分析,又通过repository修改artifact中的是分析属性isanalysis为true;

步骤4:将artifact的状态转为转移到server处理transertoserver的状态,然后执行在nifi服务下的transertoserver操作,将日志分析结果传回服务器上,又通过repository修改artifact中的是转移到server属性istransertoserver为true;

步骤5:将artifact的状态转为发送邮件sendemail的状态,然后执行在http服务下的sendemail操作,发送邮件通知日志分析完成,又通过repository修改artifact中的发送结果属性sendresult使其与外部服务输出集中的结果属性result相等;

步骤6:将artifact的状态转为end的状态,服务组合执行完成。

优选地,在步骤1中,根据服务组合文档初始化模型,将artifact初始化为start状态。

优选地,在步骤2中,在将artifact的状态转为transertohdfs的状态前,先对transertohdfs的状态进行前置条件检验,判断artifact中各属性的字段是否不为空,当artifact中各属性的字段不为空则将artifact的状态转为transertohdfs状态,当artifact中各属性的字段为空则用户输入内容存在问题,抛出异常,流程执行失败。

优选地,在步骤3中,在将artifact的状态转为analysis的状态前,先对analysis的状态进行前置条件的检验,判断istransertohdfs是否为true,当istransertohdfs是为true则artifact的状态转为analysis的状态,当istransertohdfs不为true则transertohdfs操作的服务调用失败,抛出异常,流程执行失败。

优选地,在步骤4中,在将artifact的状态转为transertoserver的状态前,先对transertoserver的状态进行前置条件检验,判断isanalysis是否为true,当isanalysis为true则artifact的状态转为transertoserver的状态,当isanalysis不为true则analysis操作的服务调用失败,抛出异常,流程执行失败。

优选地,在步骤5中,在将artifact的状态转为sendemail的状态前,先对sendemail的状态进行前置条件检验,判断istransertoserver是否为true,当istransertoserver是为true则artifact的状态转为sendemail的状态,当istransertoserver不为true则transertoserver操作的服务调用失败,抛出异常,流程执行失败。

优选地,在步骤6中,在将artifact的状态转为end的状态前,先对end的状态进行前置条件检验,判断sendresult是否不为空,当sendresult不为空则将artifact的状态转为end的状态,当sendresult为空则sendemail操作的服务调用失败,抛出异常,流程执行失败。

优选地,在步骤2中的将服务器上的文件传输到hdfs集群上为调用的外部服务;在步骤3中对hdfs集群上文件进行日志分析为调用的外部服务;在步骤4中将日志分析结果传回服务器上为调用的外部服务;在步骤5中发送邮件通知日志分析为调用的外部服务。

为实现目的二,本发明还提供了一种基于artifact的大数据复合服务组合方法,本方法能够将若干个基于artifact的大数据服务组合到一起而形成复合服务。

本发明与现有技术相比,其有益效果在于:

本发明通过从待分析日志的服务器上将数据传送到hdfs上,启动mapreduce服务对日志进行分析,分析完后将分析结果传回服务器上,并发送邮件告知用户日志分析结束,可有效快速的进行大数据处理服务。本发明在处理过程中通过调用外部服务能够有效简化系统,加快处理速度。

附图说明

图1为本发明的流程图;

图2为本发明中基于artifact的大数据复合服务组合方法的示意图。

具体实施方式

下面结合实施例,对本发明作进一步的描述,但不构成对本发明的任何限制,任何在本发明权利要求范围所做的有限次的修改,仍在本发明的权利要求范围内。

如图1所示,本发明提供了一种基于artifact的大数据服务组合方法,该方法包括以下处理步骤:

步骤1:模型初始化,将信息载体artifact初始化并且加入到仓库repository中,repository根据用户的输入对artifact的属性进行赋值;

步骤2:将artifact的状态转为转移到hdfs处理transertohdfs的状态,然后执行在nifi服务下的transertohdfs操作,将服务器上的文件传输到hdfs集群上,又通过repository修改artifact中的是转移到hdfs属性istransertohdfs为true;

步骤3:将artifact的状态转为分析处理analysis的状态,然后执行在

mapreduce服务下的analysis操作,对hdfs集群上的文件进行日志分析,又通过repository修改artifact中的是分析属性isanalysis为true;

步骤4:将artifact的状态转为转移到server处理transertoserver的状态,然后执行在nifi服务下的transertoserver操作,将日志分析结果传回服务器上,又通过repository修改artifact中的是转移到server属性istransertoserver为true;

步骤5:将artifact的状态转为发送邮件sendemail的状态,然后执行在http服务下的sendemail操作,发送邮件通知日志分析完成,又通过repository修改artifact中的发送结果属性sendresult使其与外部服务输出集中的结果属性result相等;

步骤6:将artifact的状态转为end的状态,服务组合执行完成。

在步骤1中,根据服务组合文档初始化模型,将artifact初始化为start状态。

在本实施例中,初始化的模型包括各步骤中进行处理的程序和处理引擎。

在步骤2中,在将artifact的状态转为transertohdfs的状态前,先对transertohdfs的状态进行前置条件检验,判断artifact中各属性的字段是否不为空,当artifact中各属性的字段不为空则将artifact的状态转为transertohdfs状态,当artifact中各属性的字段为空则用户输入内容存在问题,抛出异常,流程执行失败。

在步骤3中,在将artifact的状态转为analysis的状态前,先对analysis的状态进行前置条件的检验,判断istransertohdfs是否为true,当istransertohdfs是为true则artifact的状态转为analysis的状态,当istransertohdfs不为true则transertohdfs操作的服务调用失败,抛出异常,流程执行失败。

在步骤4中,在将artifact的状态转为transertoserver的状态前,先对transertoserver的状态进行前置条件检验,判断isanalysis是否为true,当isanalysis为true则artifact的状态转为transertoserver的状态,当isanalysis不为true则analysis操作的服务调用失败,抛出异常,流程执行失败。

在步骤5中,在将artifact的状态转为sendemail的状态前,先对sendemail的状态进行前置条件检验,判断istransertoserver是否为true,当istransertoserver是为true则artifact的状态转为sendemail的状态,当istransertoserver不为true则transertoserver操作的服务调用失败,抛出异常,流程执行失败。

在步骤6中,在将artifact的状态转为end的状态前,先对end的状态进行前置条件检验,判断sendresult是否不为空,当sendresult不为空则将artifact的状态转为end的状态,当sendresult为空则sendemail操作的服务调用失败,抛出异常,流程执行失败。

在步骤2中的将服务器上的文件传输到hdfs集群上为调用的外部服务;在步骤3中对hdfs集群上文件进行日志分析为调用的外部服务;在步骤4中将日志分析结果传回服务器上为调用的外部服务;在步骤5中发送邮件通知日志分析为调用的外部服务。

在本实施例中,外部设置的可以用于业务执行的4个服务分别为:第一个是提供了从服务器传输文件到hdfs集群的nifi服务,服务的id为1,输入参数为sourcedir和deshdfsdir,分别表示服务器上的文件路径和hdfs上的目的位置的路径,无输出参数。第二个是提供了对nginx日志进行分析的mapreduce服务,服务的id为2,输入参数为inputdir和outputdir,分别表示日志分析程序的输入路径和输出路径,无输出参数。第三个是提供了从hdfs集群上传输文件到服务器的nifi服务,服务的id为3,输入参数为sourcehdfsdir和desdir,分别表示hdfs上的文件路径和服务器上目的位置的路径,无输出参数。第四个是提供邮件发送的web服务,服务的id为4,输入参数是receiveemail,title和content,分别代表收件邮箱地址,邮件标题和邮件内容,输出参数是result,代表邮件是否发送成功。

在本实施例中,mapreduce是hadoop上的一个开源批处理计算框架,启动新的mapreduce作业后,作业将输入的文件切分为多个相互独立的数据块,每个数据块使用一个map任务运行,整个作业由多个map任务以完全并行的方式处理。map的输出会按输出的键值对其中的键进行排序,然后把结果传给reduce任务处理。mapreduce程序启动需要在mapreduce主节点上执行命令,命令基本格式是hadoopjar***.jarparameter1parameter2...,需要指定作业的jar文件和需要传入的启动参数。为了执行远程的mapreduce程序,要么是在hadoop集群主节点上装上监听程序,监听远程发送过来请求然后执行命令,要么通过ssh进去主节点执行命令。平台采用第二种方式来实现mapreduce服务的调用,因为第二种服务不需要hadoop集群装上其他程序,更加通用。以下是平台调用mapreduce服务的具体过程:执行引擎通过账户密码使用ssh协议登录到hadoop集群主节点;通过hadoop集群提供的restfulapi获取到作业id;检测mapreduce程序的jar包是否存在,不存在则进行下载;执行mapreduce程序启动命令;根据作业id通过轮询的方式获取作业运行信息;检查到作业执行完后服务运行结束。为了将mapreduce程序封装成服务,需要知道hadoop集群登录的账户和密码,主节点的ip和ssh开放端口,hadoop集群查询作业信息api的url,mapreduce程序jar包的具体信息和mapreduce程序的启动命令。

mapreduce服务描述文档格式如下所示,extra标签下增加了七个标签,其中ip和port代表的是主节点的ip和ssh端口,job_status_url代表的是查询作业状态的url,jar代表jar包的下载位置,command代表程序的启动命令,username和password是登录hadoop集群的账户和密码。

在本实施例中,http为超文本传输协议。hdfs为hadoop分布式文件系统。nifi为nsa开源大数据分析工具。

在本实施例中,artifact代表的是业务流程中的一个具体信息载体,是整个流程中的关键数据,通过它在service和repository间传输会导致它的属性发生改变,进而促使artifact的状态改变,触发新的规则引起新服务的调用。整个服务组合过程中都是依靠artifact的状态来进行驱动。artifact主要由三部分组成:name表示的是artifact的唯一标识;attributelist表示的是artifact的属性列表;每个attribute有两个属性,name表示属性名称,type表示属性类型。改进标记法中为attribute增加了两个新属性,isneedinput和isresult,两者都是boolean类型。isneedinput属性表示是否attribute作为artifact的初始属性,需要由用户输入。isresult属性表示是否attribute作为整个服务组合的输出结果之一;lifescycle表示的是artifact的生命周期,具体体现为状态state的变化。

在本实施例中,state代表的是artifact的生命周期的一个状态。它的变化是由属性的变化触发,主要分为三种类型的状态:初始状态,中间状态,结束状态。state主要由name,condiction和childstateref三部分组成:name表示的是state的唯一标识;condiction表示的是state的前提条件,由属性判断表达式组成,支持&,|,=,!=等符号。当满足前提条件的时候,state就会从上一个state跳转过来;childstateref表示的是与当前state关联的下一个状态。

在本实施例中,service代表的是业务流程中的服务,一个服务下包含多个操作,每个操作能完成流程中的特定活动,它的输入和输出集都是artifact,根据特定的规则触发服务操作的调用,将artifact作为输入执行服务,执行完成后对artifact修改后传送出去。引入了服务绑定和参数映射规则,将外部服务绑定到service的一个操作中,并通过参数映射来把外部服务的执行与service对artifact的操作关联起来,artifact的属性映射给外部服务作为输入集,外部服务执行完的输出结果又映射到artifact的属性中。service中主要由name和operation组成:name表示的是service的唯一标识;operation表示的是service能进行的操作,这是service的关键组成部分。在改进后abpmn中,需要跟外部服务进行绑定,一个operation仅可以绑定一个外部服务,operation主要由serviceid,inputs和outputs组成,其中,serviceid代表的是平台上一个服务;inputs和outputs代表的是operation的输入集和输出集,它们由paramapping标签构成。paramapping标签描述了业务流程定义中artifact属性与外部服务属性的映射关系,paramapping主要由属性content,属性type和标签内容组成。标签内容代表的是artifact中的一个attribute,attribute格式为:artifactname.attribute;属性content和type组合代表着一个值,type取值为”name”或者”value”,当type取值为”name”时,则代表的是外部服务一个名称为content的属性值与artifactname.attribute的值相映射,当type取值为”value”时,则代表的是artifactname.attribute的值为content。

在本实施例中,repository代表的是仓库,在业务流程中的作用是存放artifact,对artifact的属性进行修改,对artifact状态进行改变,还有检查rule规则触发新的服务操作,默认所有artifact处于同个仓库中。

在本实施例中,rule代表的是整个业务流程中的规则,是整个流程中业务逻辑的最重要的一部分。它定义了一系列的规则,根据artifact状态的变化来调用对应service中的operation,在全局上对整个流程进行控制。它的构成包括artifact和service。一个rule对应着一个表达式,表达式的格式为:artifact1.state1&artifact2.state2&...&artifactn.staten>>service1.operation1,表示当artifact1处于state1状态,artifact2处于state2状态...artifactn处于staten状态时触发service1的operation1操作。

在本实施例中,服务组合文档结构整体语法结构如下:

adspmodel标签代表的是整个模型,modelname作为其唯一标识。整个模型下边包括artifacttype,rules,services三大结构。

artifacttype标签代表的是artifact模型,一个artifact拥有一个唯一标识的name,一到多个代表属性的attribute标签,一个代表生命周期的lifescycle标签,其中attribute标签包含了在同个artifact内的唯一标识name,类型type,输入标识isneedinput,输出标识isresult四个属性;lifescycle标签包含一到多个state标签,每个标签包含唯一标识name,前置条件condiction等属性和零到多个代表后继状态的childstateref标签。

rules标签代表的是整个模型中的规则集合,一个文档中只有一个rules标签,标签下包含一到多个rule标签,每个rule标签的内容是一个表达式,代表规则触发的条件和触发后的服务操作。

services标签代表的是整个模型的服务集合,一个文档中只有一个services标签,标签下包含一到多个servicetype标签,每个servicetype代表一个service模型,servicetype标签下有一到多个operation标签,每个operation代表服务的一个操作,operation标签包含一个属性name,代表在同个servicetype中的唯一标识,还有代表外部服务的serviceid,输入集inputs和输出集outputs等三个标签,其中inputs和outputs下都包含一到多个paramapping标签。每个paramapping标签都含有属性content和type。

如图2所示,本发明还提供了一种基于artifact的大数据复合服务组合方法,本方法能够将四个基于artifact的大数据服务组合到一起而形成复合服务。该方法可以提高平台服务的多样性。

在本实施例中,将awscdl的内容加入到extra标签中,并将awscdl中所有artifact中是需要输入属性isneedinput为true的attribute作为复合服务的输入集,是结果属性isresult为true的attribute作为复合服务的输出集,自动生成的参数名格式为artifactname-attributename,artifactname代表artifact的名字,attributename代表attribute的名字。

在本实施例中,复合服务10可以包括服务1、服务2、服务3和服务4,其中,服务1、服务2、服务3和服务4都为基于artifact的大数据服务,复合服务10能够同时调用服务1、服务2、服务3和服务4全部或者任意组合形式。

此外,本方法能够将两个或三个或五个或十个或二十个基于artifact的大数据服务进行组合。

以上仅是本发明的优选实施方式,应当指出对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些都不会影响本发明实施的效果和专利的实用性。

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