毕业设计论文-基于c的流程监控与web服务集成层的设计与实现内容摘要:

操作性和敏捷性等方面有很大的改进 ,使得服务的使用者之间以多种方式进行交互成为可能,使得用户之间,企业之间的交流和资源共享,变得更为简单方便。 随着 Web Service 技术在企业信息系统中逐步得到广泛应用,Web Service 工作流技术己经成为 Web Service 技术的研究热点和重要应用方向。 国内外动态 早在很多年以前,工作流管理的概念就已经被提出,但是局限于当时的计算机技术,软件学院本科毕业论文 2 一直未能得到充分发展。 直到上个世纪 90 年代,工作流管理技术作为一种新兴的企业信息化技术,在企业的业务流程管理领域获得了广泛的应用。 最近几年,随着计算 机技术和网络技术的迅猛发展,以及伴随着市场竞争的加剧,企业对提高生产质量、缩短生产周期等的强烈要求,使得工作流管理成为企业界和研究领域的热门,在世界各地,特别是在欧洲和北美,涌现出许多有关工作流研究的公司和组织,而功能各异的工作流管理产品更是多以百计。 成立于 1993 年 8 月的工作流管理联盟 (Workflow Management Coalition),是一个非赢利性的国际性的标准化组织,成员包括工作流产品的供应者、应用者,有关大学和研究机构和个人。 该组织颁布了一系列工作流产品标准,包括工作流参考模型、工作流 术语表、工作流管理系统各部分间接口规格、工作流产品的互操作性标准等。 这些举措加速了工作流技术的商品化。 目前已经有相当数量的开发商已经研究和开发了符合上述规范的工作流产品,企业应用的实际效果也比较成功,从而进一步刺激了企业工作流管理的热情,使工作流产品显示出良好的发展趋势。 目前已有 的商业 工作流程引擎有 IBM WebSphere Process Server、 BEA AquaLogic、 Oracle BPEL Process Manager、 IONA Artix Orchestration 等。 开源流程引擎有 Apache Ode、 ActiveBPEL、 JBoss jBPM、 Intalio BPMS 等。 ,由此可见国外公司对工作流研究的投入 [6]。 在国内,近年来工作流在国内发展相当迅猛,许多公司、科研单位、开源组织和个人均从事工作流的研究和开发工作。 不过,虽然现在很多公司都推出自己的工作流产品,但专注于工作流的比较少。 目前,国内比较专注于工作流的公司和产品有:西安协同数码的SynchroFlow;上海东兰的 LiveFlow;杭州信雅达的 SunFlow 等。 但从总体来说国内工作流产品还是处于萌芽阶段,其可靠性、稳定性、开 放性及标准化方面都还有待加强。 总之,可供选择的符合中国企业实际需求而又遵循标准化 的产品实在太少 [7]。 研究内容和方法 BPEL 引擎的主要功能是提供 BPEL 流程的部署和运行环境。 对于部署在 BPEL 引擎上的业务流程,首先解析流程文件生成数据对象结构,然后将数据对象结构序列化并保存。 执行流程的时候,将已保存的数据对象结构反序列化,并根据流程中的结构和活动执行相应的操作,必要时将变量和流程执行状态持久化。 考虑到目前所有的商业流程引擎或开源流程引擎均使用 Java或 C( Microsoft BizTalk Server)实现。 之所以没有使用 C++实现的 BPEL 引擎,主要有三个原因:第一,一般的电子商务应用,主要是在较底层的 ESB 上提高性能,而不是处于上层的 BPM;第二,各大厂商为了使他们生产的产品系列配套,根据其原有产品基础来设计实现 BPEL 引擎;第三,开源项目实际上也是各大厂商主导推动,为其产品的改进提供活跃技术支持的,因此采用与第一章 绪论 3 其产品相关的结构。 而 C++相对其他语言具有性能上的优势,因此采用 C++来实现 BPEL 引擎,进一步提高 BPEL 引擎的性能。 本文着眼于 Web服务集成层如何实现 BPEL运行时与外界 的通信问题以及流程监控模块如何对流程服务和流程实例进行监控问题。 针对这两个问题,本文提出:第一,通过 Web服务标准 C/C++实现 Apache Axis2[8,9]的开源项目 WSO2WSF[10],实现一个 Axis2 集成层,支持BPEL 引擎与 Web 服务交互。 第二,流程信息库、流程实例库采用常用 MYSQL 实现,方便使用和更新。 流程信息库保存部署在该引擎上的业务流程的详细信息,主要是 BPEL 流程基本属性和 BPEL 流程序列化的数据对象结构,提供创建流程实例的模板。 接收到请求消息时,BPEL 引擎查询对应的流程信息,反 序列化数据对象结构并创建一个流程实例。 流程实例库保存流程实例运行的相关信息,包括流程实例的变量、执行状态等信息,便于实时监控。 本 文章节安排 本文共分八章,具体的内容组织如下: 第一章:绪论。 介绍了课题的研究背景和国内外动态。 第二章:需求分析。 介绍了项目各模块,特别是流程引擎监控模块和 Web 服务集成层的功能需求和目标。 第三章: BPEL 引擎的总体设计。 介绍了 BPEL 引擎的基础理论知识、设计目标和架构设计分析。 第四章: BPEL 引擎的数据库设计。 介绍了 BPEL 引擎的数据库设计思想 与其选择,也介绍了该数据库的各表以及实体关系图。 第五章:流程引擎监控模块和 Web 服务集成层模块的设计。 介绍了流程引擎监控模块和 Web 服务集成层模块的详细设计与实现。 第六章:流程引擎监控模块和 Web 服务集成层模块关键代码分析。 第七章: BPEL 引擎原型示例运行结果分析。 介绍了 BPEL 引擎原型执行示例流程的过程演示和结果分析。 第八章:总结。 总结了本论文完成工作的特点和一些不足之处。 本文最后是参考文献和致谢。 本章小结 这一章 主要介绍了项目的研究背景、意义、国内外研究的现状以及研究内容和方法,最后是本文的章节安排。 软件学院本科毕业论文 4 第二章 需求分析 项 目各模块的功能需求和目标 分布式业务流程管理系统包括 CORBA 消息总线、适配器管理平台、 BPEL 引擎、 BPM 统一管理平台四个大模块。 BPEL 引擎是整个 BPM 架构的核心模块,它主要由 BPEL 编译器、BPEL 运行时、数据持久层 DAO、集成层 IL 四个部分组成。 其中 BPEL 运行时主要由 BPEL 活动模块和 VPU[11]模块组成。 本文作者是负责集成层 IL 中的 Web 服务集成层以及 BPM 统一管理平台的流程监控模块。 系统各功能模块 概述如下表 : 表 系统 各功能实现目的概述表 系统模块名称 模块特性描述 CORBA 消息总线 传输 BPEL引擎之间、 BPEL引擎与 ESB之间交互的消息,保证消息传输的高性能和高可靠性。 适配器管理平台 支持 BPEL 引擎与非引擎内部的平台上其他引擎的流程或ESB 的服务以及非平台内部的各类外部服务或普通应用进行交互 BPEL引擎 BPEL引擎主要功能是执行业务流程,是 BPM架构的核心,其设计好坏、效率高低直接影响到整个 BPM的性能高低。 BPM统一管理平台 统一管理平台用于业务流程建模、部署、监控和优化,并且将各个 BPEL 引擎上的流程以 Web服务的方式发布,方便外部调用。 BPEL编译器 BPEL编译器是在流程部署时使用,负责将 BPEL部署时的相关资源( BPEL 流程文件、描述文件和部署文件等)编译成适合执行的文件。 BPEL运行时 活动 BPEL 活动子模块主要实现各个活动执行的具体业务逻辑。 并通过 VPU的调度完成这个流程的业务逻辑。 VPU VPU即 Virtual Process Unit(虚拟处理单元),是 BPEL运行时的核心执行调度子模块。 当执行一个活动时,实际上是把这个活动提交到 VPU,由 VPU统筹调度,调用 该活动的 run方法以实现真正的执行。 数据持久层 DAO 数据持久层 负责 BPEL运行时和数据存储的交互,数据存储使用关系数据库。 第二章 需求分析 5 集成层 IL 集成层负责 BPEL运行时与外界的通信,并为 BPEL运行时提供 线程调度机制,管理 BPEL运行时的生命周期。 流 程引擎监控模块的详细功能需求和目标 BPM 统一管理平台非承担系统核心的流程执行功能,而是面向用户,需要提供更友好的图形化界面,方便用户使用。 其核心功能包括建模、部署、监控和优化。 其中监控模块主要包括流程监控。 流程监控工具能够查询和修改所有流程实 例以及活动变量的各种状态 ,包括取消、挂起、重新启动等。 如图。 图 流程监控模块用例图 查询流程信息:查询已经部署的流程服务的详细信息,如流程 ID、状态等信息。 用户还可以根据流程 ID 进行模糊查询,来获得想要的流程信息。 查询流程实例信息:用户可以根据某一流程 id 来获取其所有的实例的信息,并且以 10秒为周期,实时更新显示流程实例的状态。 更改流程状态:用户可以更改流程服务的状态为 active 或 disactive。 删除流程:用户可以在流程列表中选中某一个流程进行删除处理。 实例执行分析:用户进入单个 流程的所有流程实例列表界面后,可以获取该流程的所有实例执行情况的统计信息,如成功率、平均执行时间等统计信息。 软件学院本科毕业论文 6 Web 服务集成层的详细功能需求和目标 如图 , 集成层负责 BPEL 运行时与外界的通信,并为 BPEL 运行时提供 线程调度机制,管理 BPEL 运行时的生命周期。 集成层与 BPEL 运行时的分层设计,可以提高 BPEL引擎的扩展性。 只要实现不同的集成层,就可以在不修改 BPEL 引擎核心模块的情况下,将 BPEL 引擎扩展到不同的环境中。 Web 服务集成层是属于集成层 IL,负责 BPEL 引擎对外部服务和流程 服务的调用,实现两者之间的交互。 图 Web 服务集成层 的 用例图 部署流程服务:用户只需提供流程相关的 BPEL 文件、 WSDL 文件和 文件就能自动部署该流程服务到本地。 调用流程服务:只要设置流程服务的终端地址、名空间、流程服务的操作名就能启动该流程服务的逻辑运行,执行 BPEL 中定义的工作流。 调用外部服务:只要设置任意外部服务的终端地址、名空间 、流程服务的操作名,并设置好该外部服务相应的参数,就能启动该 服务的逻辑运行。 本章小结 这一章介绍了项目各模块的功能需求和目标,详 细介绍了 Web 服务集成层和流程监控模块的需求。 流程监控工具面向用户,提供更友好的图形化界面,方便用户使用。 流程监控工具能够查询和修改所有流程实例以及活动变量的各种状态 ,以及对流程实例的执行情况进行统计。 Web 服务集成层是属于集成层 IL,负责 BPEL 引擎对外部服务和流程服务的调用,实现两者之间的交互。 Web 服务集成层的另外一大功能是部署流程服务。 第三章 BPEL 引擎原型的总体设计 7 第三章 BPEL 引擎原型的总体设计 BPEL 引擎的概要知识 BPEL[12]是 Microsoft、 IBM,以及 BEA 等业内主要厂商合作,将 IBM 的 支持图形化的流程描述语言规范 WSFL和 Microsoft 的结构化流程描述语言规范 XLAN 结合起来,于 2020年 8 月推出的 Web 服务的业务流程执行语言( Business Process Execution Language for Web Service, BPEL) 规范,该规范目前已经成为 OASIS 标准组织维护的 Web 服务标准。 BPEL 基本概念 BPEL 支持的业务流程能够指定一组 Web 服务操作的可能执行顺序,这些 Web 服务间共享的数据、业务流程涉及哪些伙伴以及这些伙伴在业务流程中扮演什么角色, 一组 Web服务的共同异常处理以及关于多个服务和组织是怎样参与的其他的问题。 为了实现这些功能, BPEL 引入了作用域、活动、服务链接、伙伴和服务引用、容器、相关集、异常处理、和消息属性等关键元素。 ( 1) 活动 在 BPEL 标准定义的各种元素中, BPEL 活动用于表示流程的业务逻辑,可分为基础活动和结构化活动两种类型。 基础活动描述流程业务的单个步骤实现,结构化活动则编码控制流逻辑,能递归的包含其他基础活动或者结构化活动。 业务流程的执行实际上是 BPEL活动的执行,其他元素只是提供辅助 BPEL 活动实际执行过程中所需的资源。 根据 BPEL标准提供的各种基础活动和结构化活动的多层次嵌套,可以定义任意复杂的业务逻辑,从而实现所需的业务功能。 BPEL 引擎对活动的解析和执行效率决定了 BPEL 引擎的效率。 表 BPEL 活动描述表 活动分类 活动描述 基础活动 Invoke Invoke活动用于调用服务提供者提供的 Web服务,典型的应用是调用 Web 服务上的一个操作。 Receive 和 Reply Receive和 Reply活动用于业务流程为其合作伙伴提供服务。 Receive 等待合作伙伴发送请求消息,并根据 createInstance 属性决定是否创建流程实例。 Reply 用于发送响应消息给之前通过Receive 活动 接收的请求。 Assign Assign 活动用于从一个变量到另一个变量复制。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。