【VB开源代码栏目提醒】:以下是网学会员为您推荐的VB开源代码-基于WebService的业务流程技术的研究与应用 - 其它论文,希望本篇文章对您学习有所帮助。
上海交通大学硕士学位
论文基于WebService的业务流程技术的研究与应用姓名李永茂申请学位级别硕士专业软件工程指导教师陆朝俊贺彭年20051101上海交通大学工程硕士学位
论文摘 要第 I 页基于的业务流程技术的研究与应用摘 要Web Service使得不同编程语言之间可以很容易地相互调用彼此的服务因此用Web Service实现的组件可以为各种各样的系统提供服务这体现了真正意义上的组件复用如果把Web Service组件比作是一个个的标准零件开发软件系统就是将这些零件装配在一起了这样的开发方式能够很大的提高开发效率同时降低系统集成的复杂性然而仅仅利用Web Service技术我们只是能够生产一个个分散的标准零件我们还需要一些先进的工具来装配这些标准零件这就是Web Service合成的问题人们将Web Service技术与业务流程工作流技术相结合就找到了这个问题的一个很好的解决方案WS-BPEL就是该解决方案的一个产物它是合成Web Service组件的一个很好的工具本文主要利用BPEL来做一些Web Service合成在具体工程领域内的试探性的研究BPEL还是近几年来刚刚兴起的技术在实际的项目中应用的还不是很广泛BPEL规范本身也还在实际应用中不断的改进因此这项技术的深入研究对企业软件系统利用BPEL集成及改造业务流程有一定的指导意义的同时我国的物流产业这几年也是发展迅速许多传统货运企业纷纷向第三方物流发展以作为供应链的一环向大企业提供运输和仓储服务但是和国外的大的物流公司相比我国的物流企业还有很大的差别业务流程及信息系统集成技术的落后是造成这种结果的一个原因因此研究BPEL在物流及货运信息系统中的应用是很有意义的本文将研究以下内容?? 利用BPEL技术对某企业内现有的空运业务流程软件进行尝试性的优化整合以提高资源使用效率?? 利用BPEL技术实现业务流程间的跨平台的同步和异步交互?? 探讨如何实现业务流程与其他系统服务间的交互数据库系统文件系统Email等?? 探讨业务流程如何与用户界面交互以实现业务流程的人工干预?? 探讨BPEL应用的开发方法及过程经过实践我们发现利用BPEL技术可以减少编写
代码的工作量从而极大地简化Web Service的合成最终简化业务流程的构建和集成但是BPEL技术毕竟还是一项新技术还有很多方面有待加强如对集合数据的动态操纵与用户界面的集成以及异常处理等关键字 Web ServiceWeb Service合成业务流程BPEL上海交通大学工程硕士学位
论文摘 要第 II 页RESEARCH AND APPLICATION OF WEB SERVICEBASED BUSINESS PROCESSABSTRACTBy using the Web Service technologyservices implemented in variousprogramming languages can invoke each other easily. Therefore a softwarecomponent implemented as Web Services can provide services for variousapplications which is exactly what component reuse means. Furthermore wecan assemble Web Services to create new services just as we assemble thestandard spare parts to produce products and this can greatly improve theefficiency of applications development. Web Service composition refers to thisfunction. WS-BPEL Web Services - Business Process Execution Languageis a language for describing business processes. In this paper we do someresearch on BPEL and try to implement a real project using BPEL.BPEL is a fairly new language and is not widely used in applications. Wewill study the following issues in this paper:?? How to use BPEL to improve an air transportation business process?? How to use BPEL to implement synchronous and asynchronousinteraction between different languages?? How to use BPEL to interact with other services such as DatabaseFile system and Email?? How to use BPEL to realize user task.?? The development process of using BPELFinally we conclude that it is easy to composite Web Services usingBPEL. But there are some aspects that need improvement.KEY WORDS: Web Service Web Service composition Business ProcessBPEL上海交通大学学位
论文原创性声明本人郑重声明所呈交的学位
论文是本人在导师的指导下独立进行研究工作所取得的成果除文中已经注明引用的内容外本
论文不包含任何其他个人或集体已经发表或撰写过的作品成果对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明本人完全意识到本声明的法律结果由本人承担 学位
论文作者签名李永茂 日期 2005年 11月 3日上海交通大学学位
论文版权使用授权书本学位
论文作者完全了解学校有关保留使用学位
论文的规定同意学校保留并向国家有关部门或机构送交
论文的复印件和电子版允许
论文被查阅和借阅本人授权上海交通大学可以将本学位
论文的全部或部分内容编入有关数据库进行检索可以采用影印缩印或扫描等复制手段保存和汇编本学位
论文 保密在 年解密后适用本授权书本学位
论文属于 不保密请在以上方框内打学位
论文作者签名李永茂 指导教师签名陆朝俊日期年 月 日 日期 年 月 日上海交通大学工程硕士学位
论文引言第 1 页第一章 引言1.1 研究背景至今软件系统结构的发展大致经历了下图所示的3个阶段如图1-1所示图 1-1 软件系统结构的发展1Figure 1-1 Evolution of Software Architecture图中灰色范围代表需要定制开发的应用程序可以看到随着
软件系统结构的演化这部分在不断的缩小在第1阶段软件系统是由大量的
代码集成在一起的一个整体业务逻辑和底层构架如文件访问数据访问等的
代码都混在一起第1阶段的下面三个模块是代表数据访问的模块这些模块的任何改动都会影响到其它模块而且这部分的
代码非常繁琐为了将数据操作相关的模块独立出来于是出现了数据库管理系统DBMS软件系统演化到了第2阶段在这个阶段数据库技术的发展使应用程序很容易地移植到不同的数据库图中每一阶段的中间部分代表的是和业务逻辑相关的算法第1阶段和第2阶段的上面部分代表的是将这些算法整合成业务流程所需的
代码部分业务流程的很小的改变都会导致这部分
代码的更改而这部分
代码往往紧密的耦合在一起因此需要花很长的时间进行修改这使系统对变化的应变缓慢缺乏足够的灵活性我们需要再次将这些与业务流程控制相关的部分独立出来于任务委派数据转换任务序列数据记录解释数据集处理输入输出处理数据库管理系统工作流管理系统算法1…数据库
管理系统算法2算法1算法2算法1算法2任务委派数据转换任务序列123应用程序应用程序应用程序……上海交通大学工程硕士学位
论文引言第 2 页是便演化到了第3阶段出现了业务流管理系统BPM这也正是我们现在所处的阶段目前为了高效地应对市场的迅速发展变化要求企业除了整合内部资源外还需要将企业内部与上下游的合作伙伴间的流程和资源进行整合建立透明的共享流程并依据企业内外部资源对业务流程进行优化因此企业间业务流程的整合与自动化将成为未来企业协同
作业的一大重点在这样的环境下企业开始尝试用IT技术来将业务流程整合起来软件厂商业也开始越来越重视业务流程的解决
方案加上XMLWeb Service等新技术的逐渐成熟业务流程管理BPM技术也越来越受到重视IBM的WSFL和微软的XLANG都是业务流程技术演化的产物2但不同的业务流程管理系统采用不同的工作流语言描述使得
工作流程不能在不同的工作流管理系统间交互和移植为了解决这个问题2002年8月IBM微软 BEA联合向OASIS组织提交了BPEL4WS规范由该组织来制定统一标准2003年4月通过了BPEL4WS Business Process Execution Language for WebServices 1.1版 目前该规范更名为WS-BPEL2.0以下简称BPEL其草案即将通过该规范目前已经被业界广泛的接受与以往的业务流程技术不同的是BPEL是基于Web Service的WebService是一项目前最热门的技术之一其作用可以和TCP/IP作个类比Internet的TCP/IP协议栈实现了各种运行不同协议的网络间的互联只要接入Internet我们的计算机就可以和全世界任何一个角落的另一台
计算机通信TCP/IP改变了
网络世界 就像TCP/IP一样WebService协议栈在现有的各种异种平台的基础上构建了一个通用的平台无关语言无关的技术层真正实现了异构平台的互通使不同语言编写的运行于不同平台上的应用程序相互通信成为可能 当我们从本地的一个应用
程序去调用一个航班信息的Web Service时我们都不需要知道它是那种语言编写的运行于何种平台Web Service技术的产生使得不同编程语言之间可以很容易地相互调用彼此的服务因此用WebService实现的组件可以为各种各样的系统提供服务这体现了真正意义上的组件复用如果把Web Service组件比作是一个个的标准零件开发软件系统就是将这些零件装配在一起了这样的开发方式能够很大的提高开发效率同时降低
系统集成的复杂性然而仅仅利用Web Service技术我们只是能够生产一个个分散的标准零件我们还需要一些先进的工具来装配这些标准零件这就是Web Service合成的问题也就是BPEL所要解决的问题1.2 研究动机现在软件开发所面临的一个最主要的问题就是如何快速适应企业对信息系统的需求的变化由于市场环境的不断变化信息技术的不断发展企业对信息系统的变化也是不断膨胀着的一个优秀的企业必须能快速适应市场环境变化一个优秀的企业信息系统也必须能快速适应需求变化从而为企业赢得更大的竞争力但即使是一个类似于Oracle这样大型和全面的CRM/ERP/ SCM系统也不能满足这些不断变化的需求所以对于一个优秀的企业信息系统它的整体体系架构必须能够开放灵活以适应需求的变化另一方面大多数企业都有着各种各样的系统应用程序以及不同时期和技术的体系结构而且集成来自不同厂商的不同平台的产品的费用相当昂贵上海交通大学工程硕士学位
论文引言第 3 页但每个系统又有其不同的专长比如Oracle系统特点是模块化技术优秀而SAP则有着最好的业务实践Siebel在CRM上有着非常强大的功能而国内的金碟用友的产品比较符合中国的实际情况所以我们也不可能单单使用一家厂商的产品而且要改变现有应用程序组件和支持基础设施是如此之难所以我们需要一个易于集成的企业信息系统过去解决企业内部异构信息系统以及业务流程之间整合的问题通常是采用EAI企业应用整合的方式为了保证所有的应用能够互通互用每一个应用都需要一个EAI服务器来对应打个简单的比方EAI服务器好像一个翻译一样让每两个应用之间可以对话可以互相调用但是由于每两个应用之间必须用EAI来整合当一个企业有两个应用的时候需要一个翻译有三个应用需要互通的时候需要三个翻译四个应用的时候就需要六个翻译五个应用就需要十个翻译所以EAI整合方式是一个基于点对点的整合方式企业的应用越多这种逻辑关系就会成级数上涨尽管从理论上来说EAI是能够完成企业应用之间的整合的然而要实现如此庞大和复杂的逻辑的投入比较高实施周期也比较长随着WebService和BPEL技术的诞生信息系统的整合问题也得到了很好的解决方案但是BPEL还是近几年来刚刚兴起的技术在实际的项目中应用的还不是很广泛我们很容易找到一些利用BPEL实现简单流程的资料可是与实际项目相比这些例子过于简单还不足以暴露出实际工程对这项新技术的一些要求同时BPEL规范本身也还在实际应用中不断的改进因此将这项技术与实际的工程项目相结合进行深入的研究对企业系统利用BPEL集成及改造业务流程是有一定的指导意义的这些年我国的物流产业也是发展迅速许多传统货运企业纷纷向第三方物流发展以作为供应链的一环向大企业提供运输和仓储服务但是和国外的大的物流公司相比我国的物流企业还有很大的差别业务流程及信息系统集成技术的落后是造成这种结果的一个原因致力于业务流程整合的BPEL技术必将在该领域得到很好的利用因此研究BPEL在物流及货运信息系统中的应用是非常有意义的1.3 研究范围及步骤本研究将结合一个具体的实例来研究BPEL的以下几个方面?? 利用BPEL技术对本企业内现有的空运业务流程进行尝试性的优化整合以提高资源使用效率?? 利用BPEL技术实现业务流程间的跨平台的同步和异步交互并分别使用了JSPServlet和
VB.NET客户程序调用BPEL实例?? 探讨如何实现业务流程与其他系统服务间的交互数据库系统文件系统Email等?? 探讨业务流程如何与用户界面交互以完成需要人工干预的一些任务?? 探讨BPEL应用的开发方法及过程上海交通大学工程硕士学位
论文引言第 4 页本次研究的流程如下1 收集整理相关的技术资料 本研究所涉及到的技术比较多而且多数都比较新大部分资料都是英文的因此本阶段的工作量也是比较大的需要重点研究的技术有BPMBPELWebServiceXML SchemaXPathServlet3JSP4等另外还有一些开发工具需要掌握Jdeveloper10g5OracleBPEL Process ManagerEclipse
VB.NET6OC4J或JBoss等这些技术的资料主要来自于Oracle官方网站及W3C网站2 确定开发方法 我们现在
常用的分析方法是面向对象的分析和设计方法OOAD并用统一建模语言UML来建模但是面向对象的分析和设计方法主要还是适合于针对类和对象这样的微观层次的分析和设计因此不太适合在宏观层次下分析和设计整个业务流程的应用程序开发项目在本研究中我们要在更加宏观的层次业务流程上来进行分析和设计主要采用自上而下的业务流程分解的方法而在微观层次如服务的
设计中使用面向对象的分析和设计方法3 分析业务流程 对现有的空运业务流程进行分析和抽象以优化现有流程的整合同时详细描述业务流程并根据业务的不同阶段将业务流程分解成若干个子业务流程从子业务流程的分析中提取出用户需求4 设计BPEL流程定义消息格式 根据业务流程的分析将各个子流程用BPEL来表示并提取出BPEL流程需要调用的功能并确定这些功能中是否已经有现成的WebService可供使用还是需要开发新的WebService同时要确定各个子流程间相互交换消息格式用XML Schema来表示5 设计数据库 虽然BPEL有自带持久化机制但是是面向流程的为了业务数据的查询和分析还需要将其存储到数据库中 这里我们采用OracleBPEL Process Manager的嵌入式数据库6 设计界面 界面开发主要使用
JSP和
VB.
NET大部分的界面用JSP开发一些内部使用的功能比较复杂的界面用
VB.NET开发7 实现及验证8 实现好一个BPEL后可以直接从Oracle BPEL Console中调用BPEL流程来进行测试并从审计audit界面来查看BPEL流程执行中每一步的输入和输出参数的详细信息上海交通大学工程硕士学位
论文相关核心技术探讨第 5 页第二章 相关核心技术探讨2.1 Web Service技术2.1.1 Web Service协议栈Web Service技术对现有的软件系统构架具有深远的影响因此我们首先来介绍一下WebService的协议栈在Web Service之前已经有很多的分布式技术试图解决不同平台的交互性问题如DCOMCORBA
Java RMIMSMQ等可是这些技术都有其局限性都只是遵循各自独立的标准各种标准之间无法实现互通因此都没有做到真正的平台独立性而且有些技术实现起来非常的复杂为了克服以前的分布式技术对平台的依赖性Web Service必须建立在标准的被广泛支持的协议和语言之上同时又有以前分布式系统的功能这就要求Web Service平台必须具备以下特性?? 标准的
通信传输协议使得不同平台可以相互通信?? 标准的消息表示方式使得不同平台可以共享数据?? 标准的功能界面描述语言就像IDL描述接口一样使得客户程序能够方便的访问Web Service提供的服务?? 标准的发现机制可以让其他应用找到所需的Web Service服务除此之外还有一些辅助的功能也非常的重要比如事务处理安全管理编排等Web Service自身还在不断的完善新的协议会不断的加入进来这些协议就构成了Web Service协议栈如图2-1所示ContextCoordinationTransactionsWS-SecurityWS-ReliabilityUDDIWSDLSOAPXMLHTTP IIOP JMS SMTPManagementOrchestration - BPEL业务流程编排服务质量发现描述传输消息上海交通大学工程硕士学位
论文相关核心技术探讨第 6 页图 2-1 Web Service协议栈7Figure 2-1 Web Service Protocol Stack从上图我们可以看到BPEL技术是建立在WebService协议基础之上的是整合WebService的标准工具可以看作是WebService的消费者同时BPEL流程自身又暴露为WebService因此又可作为WebService的提供者有关Web Service各种协议的具体内容本文就不作详细介绍了下面主要介绍一下与Web Service合成相关的一些
问题2.1.2 Web Service合成简单地说Web Service合成就是将多个Web Service组件按照一定的执行顺序组合起来以实现更复杂的功能目前BPEL技术已经成为Web Service合成的一个标准为了理解为什么需要这样的标准来合成WebService我们先来考虑一下在没有BPEL技术的情况下利用WebService实现一个业务流程会碰到哪些问题9下面我们用一个订货流程实例Order Booking来看看在整合Web Service时会碰到的常见问题如图2-2所示图 2-2 订货流程8Order BookingReceiveCreditGet PriceGet PriceSelectSupplier1SelectSupplier2Order MarginApprovalOrderWrite OrderAckReplyOrders fromall channelsPicklowestCredit CheckServiceSupplier2Price QuoteServiceApprovalServiceFulfillmentServiceSupplier1Price QuoteServiceSend OrderAcknowledgementService上海交通大学工程硕士学位
论文相关核心技术探讨第 7 页Figure 2-2 Order Booking Process1.流程控制在一个订货流程中为了提高效率订货流程会并行的调用两个WebServiceGet Price去
查询供应商的产品价格并从中选一个最低的这样的并行处理在某些语言中是比较难实现的另外当流程执行到订单利润批准OrderMargin Approval时这个请求不会立即得到Approval Service的回应这时就要异步处理等有批准或不批准的回应时流程可以被异步通知即可因此除了一般的顺序循环和条件流程控制外并行和异步处理也是商业流程中经常要碰到的2.数据转换这里的每个Web Service所提供的方法都有固定的参数类型我们的流程再调用这些方法前都要进行相应的类型转换这个过程虽然很简单但也很枯燥如果手工去写也比较浪费时间3.保持状态的交互为了松散耦合的需要Web Service总是被构建为无状态的组件10而不保存来自客户请求的任何信息Web Service是通过WSDL端口来调用的假如我们的流程有多个实例在运行并通过同一端口调用了异步的ApprovalService来请求订单批准当这个Approval Service回应我们的请求时也是发送到我们这个流程的一个WSDL端口如何将这些回应和发出请求的实例一一对应也是一个难题4.长时间事务我们的这个流程可能会持续几小时甚至几天有些相关活动要求要么都做要么都不做这样长时间的事物如果也用象数据库中的锁定资源机制来解决是不现实的5.异常处理这些不同的Web Service内部实现对异常的处理机制往往是不同的在我们的流程中如何以统一的方式处理各种各样的异常除此之外一定还有很多问题我们还没想到总之Web Service只是为我们构建了一个崭新的基础平台我们还需要更多的标准来统一处理这些经常会碰到的问题BPEL规范提供了很多机制来简化上面这些反复出现的问题这就是为什么我们还需要BPEL技术来合成Web Service的原因从下表可以看出BPEL是如何以规范的方式解决这些问题的有关BPEL的这些内容将在后面的章节进一步地介绍表格 2-1 BPEL所解决的问题Table 2-1 BPEL Solution上海交通大学工程硕士学位
论文相关核心技术探讨第 8 页问题BPEL解决机制流程控制Activities数据转换variablesMessageassign状态一致CorrelationSetsvariables长时间事务CompensationHandlers异常处理FaultHandlers2.2 业务流程管理技术BPM2.2.1 什么是BPMBPM是一个让IT企业用户感到困惑的词汇BPM被吹捧为企业必须拥有的包治百病的灵药有了它就可以提高生产率和工作效率但是大多数的IT经理们都说不清楚它到底是什么东西那么到底什么是BPMBPM就是把所有的要素和所有业务流程中涉及的资源都连接起来以保证工作流程无缝执行并更有效率这种技术把业务流程中的控制部分提取到业务流程层这样它就可以重新建模重复使用从而协调所有的人员应用程序和系统组件更高效的工作其背景来自于企业信息化造成的企业内部无数个孤岛的结果所以对企业来说让这些信息系统整合起来就变成一个非常重要的需求BPM产品包含四大要素第一是建模分析并捕捉业务流程第二是管理管理流程与员工和系统连接的手段第三是执行引擎执行定义好的业务流程最后是报表BPM对企业有益之处在于改善过程控制和管理它是帮助企业管理变革的工具这种.