Bpmn组合服务的执行方法和执行装置的制作方法

文档序号:7719595阅读:129来源:国知局
专利名称:Bpmn组合服务的执行方法和执行装置的制作方法
技术领域
本发明涉及BPMN组合服务技术领域,尤其涉及一种BPMN组合服务的执行方法和 执行装置。
背景技术
随着互联网技术的快速发展,面向服务体系结构(简称S0A)等网络化服务软件 模式得到了广泛应用,特别是Web服务作为SOA的最佳实践,极大的推动了 SOA在金融、电 信及电子商务等领域的发展。在实际的业务应用中独立的万维网服务(以下简称Web服 务)功能有限,不可能完成复杂的业务需求,一些多方参与的复杂业务流程需要集成已存 在的Web服务形成更高级服务组合来完成。Web服务组合作为实现灵活的跨组织应用集成 和资源共享的核心技术得到了许多研究机构的共同关注,成为新兴的研究热点。
组合服务建模和服务的执行,是服务组合生命周期中的两个重要组成部分。在业 务建模阶段,业务分析人员使用各种流程建模语言描述业务流程,进行组合服务建模。目 前主流的流程建模语言包括面向设计的语言,例如业务流程建模标记(Business Process Modeling Notation ;以下简称BPMN)和Web服务编排描述语言(WS-CDL);流程建模语言 还包括面向执行的语言,例如业务流程执行语言(BPEL)和可扩展标识语言(extensible MarkupLanguage ;简称XML)流程定义语言(XPDL)等。业务人员使用BPMN建模,开发出来 的是抽象的业务模型,不能直接执行。目前对于BPMN模型的执行, 一般采用的方式是由技 术人员根据业务模型编排出执行模型,例如生成具体的BPEL流程,然后利用已有的BPEL引 擎执行。 将BP丽转换到BPEL的执行方式有如下缺陷面向图形的BP丽模型与面向决的 BPEL之间存在语法和语义上的不兼容,会导致业务模型与执行模型之间的转换带来BPMN 模型功能缺失、循环结构和并行语言处理困难等问题。BABEL项目无法支持全部的BPMN结 构。BP丽到BPEL映射的核心问题是BP丽中的流程方向可以任意流动,而BPEL的除循环 外的流程方向却始终是向前的,但BEPL对循环有着特定的规定,即BPEL的循环只能有一个 入口和一个出口 ,因此现有的BPMN向BPEL的映射方法在处理源模型(尤其是面对循环结 构)上具有很大的局限性。另外,由于BPMN和BPEL两种语言根本上的语义语法不一致性 导致这种模型映射不可能是完全自动化的,必须由人来参与和控制。

发明内容
本发明实施例提供一种BP丽组合服务的执行方法和执行装置,用以解决现有技 术中将BPMN转换到BPEL的执行方式中存在模型映射失配,需要手动配置的缺陷,实现BP丽 模型的直接解析执行。 本发明实施例提供一种BP丽组合服务的执行方法,包括 接收执行BP丽组合服务的请求消息,根据所述请求消息构建BP丽的运行时对 象;
解析所述BPMN的运行时对象,获得所述BPMN的运行时对象中流对象的执行顺序 信息; 调用与所要执行的流对象的类型对应的执行方法,按照所述执行顺序信息依次执 行所述流对象。 本发明实施例提供一种BP丽组合服务的执行装置,包括 执行请求预处理模块,用于接收执行BPMN组合服务的请求消息,根据所述请求消 息构建BP丽的运行时对象; BP丽流程解析模块,用于解析所述BP丽的运行时对象,获得所述BP丽的运行时对 象中流对象的执行顺序信息; 流对象执行模块,用于调用与所要执行的流对象的类型对应的执行方法,按照所 述执行顺序信息依次执行所述流对象。 本发明提供的BP丽组合服务的执行方法和执行装置,通过对BP丽图模型中的流 对象和顺序流的解析,获取流对象的执行顺序,并依照BPMN中流对象的语义执行相应的动 作;实现了 BPMN流程直接解释执行而不将其转换为BPEL流程,克服了 BPMN与BPEL两个标 准之间语义失配的缺陷。由于BP丽的解析执行绕过了模型转换的环节,因此不存在模型转 换带来的不兼容问题,可以实现业务概念模型、业务流程模型和业务执行模型的语义上的 兼容和统一。执行过程无需人工参与和控制,可以实现BPMN执行的自动化。


图1为本发明BPMN组合服务的执行方法实施例一流程图; 图2为本发明BP丽模型对象树示意图; 图3为本发明BPMN组合服务的执行方法实施例二流程图; 图4为本发明BPMN组合服务的执行方法中执行活动类型的流对象的流程图; 图5为本发明BP丽组合服务的执行方法中执行门径类型的流对象的流程图; 图6为本发明BPMN组合服务的执行方法中执行事件类型的流对象的流程图; 图7为本发明BPMN组合服务的执行装置结构示意图。
具体实施例方式
下面结合附图和具体实施例进一步说明本发明的技术方案。 为了支持BPMN的流程的执行,必须克服其面向图形(Gr即h Oriented)的根本特 性,与其它可执行服务组合语言(例如BPEL)不同的是,BP丽的模型对于BP丽流程的描述 只是停留在图形的层面上,符合BPMN计划(BPMNSchema)的持久化文件并没有明确地指示 出流程执行的顺序。因此,必须通过对BPMN流程对应的有向图的解析,获得图中的各个节 点在流程执行过程中被执行的先后顺序,同时在节点被执行时完成BPMN规范中定义的行 为语义操作,才能完成整个BPMN模型的执行。 图1为本发明BP丽组合服务的执行方法实施例一流程图,如图1所示,该方法包 括 步骤100,接收执行BPMN组合服务的请求消息,根据所述请求消息构建BPMN的运 行时对象;
5
BP丽组合服务的直接执行引擎接收到外部的执行请求消息,该执行请求消息可以是简单对象访问协议(Simple Object Access Protocol ;以下简称S0AP)消息,SOAP消息中可以包括请求执行的BPMN组合服务的名称和执行所述BPMN组合服务所需的输入参数,将可以唯一标识一个BPMN流程的BPMN组合服务的名称和调用该组合服务时的输入参数从SOAP消息中取出。 然后根据所述BPMN组合服务的名称查询对应的BPMN文件,并将所述BPMN文件转换成BPMN对象实例集合,具体为首先根据BPMN组合服务的名称在执行引擎内部的组合服务库中找到用户要调用的BP丽组合服务对应的BP丽文件,该BP丽文件是符合本发明定义的XML文件;然后将该BPMN文件转换成BPMN对象实例集合,BPMN对象实例集合为由从BPMN文件转换得到的多个对象实例的集合。 最后根据所述BPMN对象实例集合和所述输入参数,构建所述BPMN的运行时对象,即在获得BPMN对象实例集合后,结合执行所述BPMN组合服务所需的输入参数共同构建出BPMN的运行时对象。 所述的BPMN运行时对象(BPMN Execution Object ;简称BEO)是对不同的Web服务组合流程执行需求的统一抽象,代表一个组合服务流程的一次执行。BEO维护了运行时BPMN流程的数据结构,其包含如下信息(l)运行时对象标识符,是一次BPMN流程执行的唯一标识。通过该标识符,可以区分不同的运行期对象;(2)BPMN对象实例集合,即与BPMN图对应的BP丽元素对象树,BP丽流程实例是对用户建模得到的BP丽流程的对象表示,是流程执行的依据;(3)运行时对象的状态信息,包括等待、执行、挂起和结束状态;(4)执行上下文(Context),记录了与本次流程执行相关的所有业务数据,包括用户输入的参数信息和流程运行期间产生的中间业务数据。要构建BPMN运行时对象,关键在于将基于XML语言的BP丽文件转换成为内存中的对象实例集合。符合BP丽计划(BP丽Schema)的BP丽模型可以用一棵树表示,因此转换得到的BPMN元素对象集合中的对象存在层次关系,整个BPMN流程对应的元素对象实际上构成了一棵以"BP丽Element"作为根节点的对象树,如图2所示。通过访问"BPMNElement"对象提供的方法,可以获得整个对象树上的任一节点。本发明实施例中所述的Web是指万维网,所述的Web服务(Web Service)是一类用URI标识的软件系统,使用XML定义和描述其对外公开的接口和绑定。Web服务的定义能够被其他的软件系统所发现。这些软件系统能够通过Web服务的定义所规定的方式与其进行交互,交互中使用互联网协议传送基于XML的消息。 步骤101 ,解析所述BPMN的运行时对象,获得所述BPMN的运行时对象中流对象的执行顺序信息; 通过对运行时对象进行调度和解释,解析运行时对象中的BPMN对象实例集合中
的流对象和顺序流,获得所述BP丽的运行时对象中流对象的执行顺序信息,即通过解析
BP丽对象实例集合中的流对象和顺序流,获取执行顺序,控制整个流程的执行。 步骤102,调用与所要执行的流对象的类型对应的执行方法,按照所述执行顺序信
息依次执行所述流对象。 当满足执行条件时,首先根据所要执行的流对象的类型选择对应的执行方法,然后调用该方法执行流对象;再按照执行顺序依次执行下一个流对象。执行流对象时具体要根据流对象的BPMN图形元素的行为语义和执行所 BPMN组合服务所需的输入参数,执行流对象。 通过对BPMN流程的解析获得执行顺序,并按照顺序依次执行流对象的过程中包括解析所述BPMN对象实例集合中的流对象和顺序流,将查找到的初始流对象加入待执行流对象集合;调用与加入所述待执行流对象集合中的流对象的类型对应的执行方法,执行所述流对象;获得以执行完毕的流对象为起点的顺序流边的后继顺序流边集合;将所述后继顺序流边集合中符合转移条件的顺序流边指向的流对象,加入所述待执行流对象集合;在执行完毕一个流对象后,再到待执行流对象集合中取出下一个所要执行的流对象,按照对应的执行方法执行。 流对象的类型可以分成活动(Activity)类型、事件(Event)类型和门径(Gateway)类型,对于不同类型的流对象有对应的执行方法,例如对于类型为活动类型的流对象执行方法可以包括根据类型为活动类型的流对象对应的Web服务的输入流描述,获取Web服务中各参数的参数类型和参数名称;根据所述流对象的赋值描述和所述参数名称,从所述对象实例集合中取出执行上下文信息对所述参数进行赋值;根据所述参数类型和分别由Web服务的服务名称描述和操作名称描述得到的Web服务名称和操作名称,与对应的Web服务进行绑定,获取Web服务的地址和目标命名空间信息,其中具体绑定哪个Web服务是随机的;根据所述Web服务名称、操作名称和所述参数的取值,执行所述Web服务,并接收返回值信息;根据类型为活动类型的流对象对应的Web服务的输出流描述,获取调用返回值的参数类型和名称信息,并与所述返回值信息一起写入所述执行上下文信息中。
对于类型为门径类型的流对象执行方法可以包括判断类型为门径类型的流对象的入度和出度,若所述入度大于1且所述出度等于l,则等到所述并行门径类型服务所有入边的消息均已经到达后,结束流对象的执行;若所述入度等于1且所述出度大于l,则直接结束流对象的执行。 对于类型为事件类型的流对象执行方法可以包括根据类型为事件类型的流对象的消息流指示信息,获取指向所述流对象的消息流;从所述消息流中获取所述消息流包含的参数名称和类型信息;根据消息到达标志位判断消息是否已经到达,若到达,则从到达的消息中取出参数值信息;将所述参数值信息、所述参数名称和类型信息写入所述对象实例集合中的执行上下文信息中。 图3为本发明BP丽组合服务的执行方法实施例二流程图,如图3所示,BP丽的执
行方法可以包括为以下步骤 步骤200、用户提交BPMN流程执行请求; 步骤201 、对提交的BPMN执行请求进行预处理,建立运行时对象;
接收的SOAP消息中可以包括请求执行的BP丽组合服务的名称和执行所述BP丽组合服务所需的输入参数,根据BPMN组合服务的名称查找BPMN文件,将BPMN文件转换成BP丽对象实例集合,根据BP丽对象实例集合和所述输入参数,构建BP丽的运行时对象。
步骤202、解析BPMN流程,找出起始流对象,将其加入待执行流对象集合;
步骤203、从待执行流对象集合中取出一个流对象; 步骤204、根据取出的流对象的类型,调用相应的流对象执行方法执行流对象;
步骤205、获得后继顺序流边集合; 以刚执行完毕的流对象为起点的顺序流边的集合称为后继顺序流边集合。
步骤206、判断后继顺序流边集合是否为空,若为空,跳转执行步骤210 ;若不为空,则执行步骤207 ; 步骤207、从后继顺序流边集合中取出一条顺序流边; 步骤208、判断此边上的转移条件是否为真,如果为真,则执行步骤209 ;否则,跳转执行步骤206 ; 步骤209、将顺序流边指向的流对象加入待执行流对象集合,跳转执行步骤206 ;
步骤210、判断待执行流对象集合是否为空,若不为空,跳转执行步骤203 ;否则,执行步骤211 ;
步骤211、结束。 在上述执行流程中,针对不同类型的流对象采用对应的执行方法执行,步骤204针对类型为服务任务(service task)的具体执行步骤,所述的服务任务是类型为活动(Activity)类型的流对象中的一种,如图4所示 步骤2041a、根据服务任务对应的Web服务的输入流(inMessageRef属性)描述获取Web服务中各参数的的参数类型和参数名称; 步骤2042a、根据服务任务的赋值(assignment)描述和所述参数名称进行参数赋值,从运行实例中取出执行上下文信息,赋值给相应Web服务的参数; 步骤2043a、根据所述Web服务名称、操作名称和所述参数类型信息,查找当前可用的服务,获取Web服务的地址例如"Url"和目标命名空间信息例如"targetNameSpace",绑定具体的Web服务; 其中所述的Web服务名称是由Web服务的服务名称描述获得的,操作名称是由Web服务的操作名称描述获得的。 步骤2044a、根据Web服务名称、操作名称和参数的取值,执行Web服务调用,并接收返回值信息; 步骤2045a、根据服务任务对应的Web服务的输出流(outMessageRef属性)描述获取调用返回值的参数类型和名称信息,并与对应的返回值一起添加到运行实例的上下文信息中。 步骤2046a、执行结束。 在上述执行流程中,针对不同类型的流对象采用对应的执行方法执行,步骤204针对类型为门径类型的流对象的具体执行步骤为,如图5所示 所述步骤204,类型为并行门径parallel gateway(属于门径类型)的具体执行步骤包括 步骤2041b、判断门径类型的流对象的入度和出度,如果入度为1且出度大于l,则
跳转执行步骤2043b ;如果入度大于1且出度为l,则执行步骤2042b ; 步骤2042b、判断门径类型的流对象所有入边的消息是否已经到达,若有消息没有
到达,则此门径类型的流对象继续等待;否则,执行步骤2043b ; 步骤2043b、执行结束。 在上述执行流程中,针对不同类型的流对象采用对应的执行方法执行,步骤204
针对类型为事件类型(start event)的流对象的具体执行步骤为,如图6所示 步骤2041c,根据事件类型的流对象的消息流指示信息(messageRef)获取指向此
8流对象的消息流(message flow); 步骤2042c、从上述消息流(message flow)中获取消息中包含的参数名称和类型 信息; 步骤2043c、查看消息到达的标志位是否为真,若消息到达的标志位标识消息已经 到达,则执行步骤2044c ; 步骤2044c,从收到的消息中取出参数值信息,将参数值信息和所述参数名称和类
型信息一起写入运行时对象的执行上下文中;
步骤2045c,执行结束。 本发明提供的BP丽组合服务的执行方法通过对BP丽图模型中的流对象和顺序 流的解析,获取流对象的执行顺序,并依照BPMN中流对象的语义执行相应的动作;实现了 BPMN流程直接解释执行而不将其转换为BPEL流程,克服了 BPMN与BPEL两个标准之间语义 失配的缺陷。由于BPMN的解析执行绕过了模型转换的环节,因此不存在模型转换带来的不 兼容问题,可以实现业务概念模型、业务流程模型和业务执行模型的语义上的兼容和统一。 执行过程无需人工参与和控 制,可以实现BPMN执行的自动化。 图7为本发明BPMN组合服务的执行装置结构示意图,如图7所示,该装置包括执 行请求预处理模块11、 BPMN流程解析模块12和流对象执行模块13,其中执行请求预处理 模块11用于接收执行BPMN组合服务的请求消息,根据所述请求消息构建BPMN的运行时对 象;BPMN流程解析模块12用于解析所述BPMN的运行时对象,获得所述BPMN的运行时对象 中流对象的执行顺序信息;流对象执行模块13用于调用与所要执行的流对象的类型对应 的执行方法,按照所述执行顺序信息依次执行所述流对象。 本实施例提供一个BPW^执行引擎装置,其中执行请求预处理模块11包括消息接 收子模块111、运行时对象构建子模块112和运行时对象调度子模块113,其中消息接收子 模块111用于接收所述执行BPMN组合服务的请求消息;运行时对象构建子模块112用于根 据所述请求消息构建所述运行时对象;运行时对象调度子模块113用于对所述运行时对象 进行调度,为所述BPMN流程解析模块提供运行时对象。 具体地,执行请求预处理模块11中的消息接收子模块111接收执行BPMN组合服 务的请求消息,并从请求消息例如SOAP消息中提取相关信息,所述相关信息包括请求执行 的BPMN组合服务的名称和执行所述BPMN组合服务所需的输入参数,并为运行时对象构建 子模块112提供构建运行时对象的信息;运行时对象调度子模块113与BPW^流程解析模 块12连接,用于实现运行时对象的调度,为BPMN流程解析模块12提供BPMN运行时对象; BPMN流程解析模块12用于解析BP丽图模型,确定流程中的流对象的执行顺序和控制执行 的逻辑;流对象执行模块13为不同类型的流对象提供执行方法。流对象执行模块为不同类 型的流对象提供执行方法,包括事件(Event)执行模块、活动(Activity)执行模块和门径 (Gateway)执行模块。事件执行模块为事件类型的流对象提供执行方法,活动执行模块为活 动类型的流对象提供执行方法,门径执行模块为门径类型的流对象提供执行方法。这三个 模块内部包括了处理各个事件子类型、活动子类型和门径子类型的子模块。
本发明提供的BP丽组合服务的执行装置通过对BP丽图模型中的流对象和顺序 流的解析,获取流对象的执行顺序,并依照BPMN中流对象的语义执行相应的动作;实现了 BPMN流程直接解释执行而不将其转换为BPEL流程;由于BPMN的解析执行绕过了模型转换的环节,可以实现业务概念模型、业务流程模型和业务执行模型的语义上的兼容和统一 ;执 行过程无需人工参与和控制,可以实现BPMN执行的自动化。 最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
权利要求
一种BPMN组合服务的执行方法,其特征在于,包括接收执行BPMN组合服务的请求消息,根据所述请求消息构建BPMN的运行时对象;解析所述BPMN的运行时对象,获得所述BPMN的运行时对象中流对象的执行顺序信息;调用与所要执行的流对象的类型对应的执行方法,按照所述执行顺序信息依次执行所述流对象。
2. 根据权利要求1所述的BPMN组合服务的执行方法,其特征在于,所述接收执行BPMN 组合服务的请求消息,根据所述请求消息构建BPMN的运行时对象包括接收所述请求消息,所述请求消息中包括请求执行的BPMN组合服务的名称和执行所 述BPMN组合服务所需的输入参数;根据所述BPMN组合服务的名称查询对应的BPMN文件,并将所述BPMN文件转换成BPMN 对象实例集合;根据所述BPMN对象实例集合和所述输入参数,构建所述BPMN的运行时对象。
3. 根据权利要求2所述的BPMN组合服务的执行方法,其特征在于,所述解析所述BPMN 的运行时对象,获得所述BPMN的运行时对象中流对象的执行顺序信息包括解析所述BPMN对象实例集合中的流对象和顺序流,获得所述BPMN的运行时对象中流 对象的执行顺序信息。
4. 根据权利要求3所述的BPMN组合服务的执行方法,其特征在于,所述解析所述BPMN 的运行时对象,获得所述BPMN的运行时对象中流对象的执行顺序信息,调用与所要执行的 流对象的类型对应的执行方法,按照所述执行顺序信息依次执行所述流对象包括解析所述BPMN对象实例集合中的流对象和顺序流,将查找到的初始流对象加入待执 行流对象集合;调用与加入所述待执行流对象集合中的流对象的类型对应的执行方法,执行所述流对象;获得以执行完毕的流对象为起点的顺序流边的后继顺序流边集合; 将所述后继顺序流边集合中符合转移条件的顺序流边指向的流对象,加入所述待执行 流对象集合。
5. 根据权利要求4所述的BPMN组合服务的执行方法,其特征在于,所述调用与加入所 述待执行流对象集合中的流对象的类型对应的执行方法,执行所述流对象包括根据所述流对象的BPMN图形元素的行为语义和所述输入参数,执行所述流对象。
6. 根据权利要求5所述的BPMN组合服务的执行方法,其特征在于,所述根据所述流对 象的BPMN图形元素的行为语义和所述输入参数,执行所述流对象包括根据类型为活动类型的流对象对应的Web服务的输入流描述,获取Web服务中各参数 的参数类型和参数名称;根据所述流对象的赋值描述和所述参数名称,从所述对象实例集合中取出执行上下文 信息对所述参数进行赋值;根据所述参数类型和分别由Web服务的服务名称描述和操作名称描述得到的Web服务 名称和操作名称,与对应的Web服务进行绑定,获取所述Web服务的地址和目标命名空间信 息。根据所述Web服务名称、操作名称和所述参数的取值,执行所述Web服务,并接收返回值信息;根据类型为活动类型的流对象对应的Web服务的输出流描述,获取调用返回值的参数 类型和名称信息,并与所述返回值信息一起写入所述执行上下文信息中。
7. 根据权利要求5所述的BPMN组合服务的执行方法,其特征在于,所述根据所述流对 象的BPMN图形元素的行为语义和所述输入参数,执行所述流对象包括判断类型为门径类型的流对象的入度和出度,若所述入度大于1且所述出度等于l,则 等到所述并行门径类型服务所有入边的消息均已经到达后,结束流对象的执行;若所述入 度等于1且所述出度大于l,则直接结束流对象的执行。
8. 根据权利要求5所述的BPMN组合服务的执行方法,其特征在于,所述根据所述流对 象的BPMN图形元素的行为语义和所述输入参数,执行所述流对象包括根据类型为事件类型的流对象的消息流指示信息,获取指向所述流对象的消息流; 从所述消息流中获取所述消息流包含的参数名称和类型信息;根据消息到达标志位判断消息是否已经到达,若到达,则从到达的消息中取出参数值 信息;将所述参数值信息、所述参数名称和类型信息写入所述对象实例集合中的执行上下文 信息中。
9. 一种BPMN组合服务的执行装置,其特征在于,包括执行请求预处理模块,用于接收执行BPMN组合服务的请求消息,根据所述请求消息构 建BPMN的运行时对象;BPMN流程解析模块,用于解析所述BPMN的运行时对象,获得所述BPMN的运行时对象中 流对象的执行顺序信息;流对象执行模块,用于调用与所要执行的流对象的类型对应的执行方法,按照所述执 行顺序信息依次执行所述流对象。
10. 根据权利要求9所述的BPMN组合服务的执行装置,其特征在于,所述执行请求预处理模块包括消息接收子模块,用于接收所述执行BPMN组合服务的请求消息; 运行时对象构建子模块,用于根据所述请求消息构建所述运行时对象; 运行时对象调度子模块,用于对所述运行时对象进行调度,为所述BPMN流程解析模块 提供运行时对象。
全文摘要
本发明提供一种BPMN组合服务的执行方法和执行装置。该方法包括接收执行BPMN组合服务的请求消息,根据所述请求消息构建BPMN的运行时对象;解析所述BPMN的运行时对象,获得所述BPMN的运行时对象中流对象的执行顺序信息;调用与所要执行的流对象的类型对应的执行方法,按照所述执行顺序信息依次执行所述流对象。本发明提供的BPMN组合服务的执行方法和执行装置,通过对BPMN图模型中的流对象和顺序流的解析,获取流对象的执行顺序,并依照BPMN中流对象的语义执行相应的动作;实现了BPMN流程直接解释执行,实现业务概念模型、业务流程模型和业务执行模型的语义上的兼容和统一及BPMN执行的自动化。
文档编号H04L29/08GK101695080SQ20091023561
公开日2010年4月14日 申请日期2009年9月30日 优先权日2009年9月30日
发明者刘旭东, 曾晋, 李建欣, 杜宗霞, 班倩超, 纪一鹏 申请人:北京航空航天大学;
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1