您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 基于Web服务的业务流程
基于Web服务的业务流程--定义与描述、运行与管理YuqiBaiIRSA.CAS.2003-12提纲•1.Web服务•2.业务流程&案例•3.相关规范(草案)•4.应用前景&案例•5.总结Web服务•从外部的使用者的角度而言,Web服务是一种部署在Web上的对象/组件•它具备以下特征:–完好的封装性•使用者他能且仅能看到该对象提供的功能列表–松散耦合•Web服务的实现发生变更并不影响调用–使用标准协议规范–高度可集成能力•完全屏蔽了不同软件平台的差异Web服务相关的规范Web服务的描述-WSDLWeb服务的描述-WSDLWeb服务的描述-WSDL•组成元素definitionsname='weatherservice'xmlns='='WeatherService'……/service/definitionsportname='WeatherSoapPort'binding='wsdlns:WeatherSoapBinding'soap:addresslocation='='Weather.GetTemperature'partname='zipcode'type='xsd:string'/partname='celsius'type='xsd:boolean'//messagemessagename='Weather.GetTemperatureResponse'partname='Result'type='xsd:float'//messageWeb服务的描述-WSDLoperationname='GetTemperature'parameterOrder='zipcodecelsius'inputmessage='wsdlns:Weather.GetTemperature'/outputmessage='wsdlns:Weather.GetTemperatureResponse'//operationportTypename='WeatherSoapPort'operationname='GetTemperature'parameterOrder='zipcodecelsius'inputmessage='wsdlns:Weather.GetTemperature'/outputmessage='wsdlns:Weather.GetTemperatureResponse'//operation!--otheroperationswouldgohere--/portTypeWeb服务的描述-WSDLbindingname='WeatherSoapBinding'type='wsdlns:WeatherSoapPort'soap:bindingstyle='rpc'transport='='GetTemperature'soap:operationsoapAction=':bodyuse='encoded'namespace='=':bodyuse='encoded'namespace='='业务流程•案例():•Acme旅行服务(AcmeTravelService)•是一个虚拟的旅行社,它旨在让客户能够方便地通过基于Web的应用程序安排和预定旅行行程。在该应用程序中,Acme认识到要让业务伙伴和客户能够通过Web服务接口用程序的方式访问服务,从而使客户或业务伙伴可以松散地将AcmeTravel的服务集成到它们的业务旅行流程中—这种能力会让在策略上有很大的优势,并有助于使业务更有效率。•AcmeTravel尝试通过开发并部署它们的Web服务来实现三个主要目标:–允许客户向AcmeTravel代理提交旅行计划,–根据客户计划自动获取合适的航班、旅店和车辆预约,然后–在旅行计划处理完毕后马上将所有预约的确认返回到客户。•然而,AcmeTravel认识到要让这种解决方案能够实现,它必须通过某种方式将自己的旅行计划处理工作流与和它有业务关系的航班、旅店和汽车租赁公司的工作流相集成。这一事实引出了几个独特的难题。•AcmeTravel必须能够以某种方式将它希望具体化的面向客户的Web服务与它希望自动进行并与其业务伙伴集成的业务流程连接起来。•每个伙伴必须将一种使AcmeTravel直接把其业务流程集成到该伙伴的预约系统中的方法具体化。•AcmeTravel必须能够确保整个流程的可靠性和可依赖性。•AcmeTravel必须能够协调各个伙伴的活动,从而有效地确保客户计划的处理令人满意。•1.AcmeTravel从客户Karla收到计划。•2.在检查旅程错误后,流程将决定要进行哪些预约,同时发送请求到合适的航班、旅店和汽车租赁代理以进行合适的预约。•3.如果以上三个预约任务中的任意一个失败了,就会执行“补偿”活动以取消旅程并通知Karla这个问题。•4.AcmeTravel将等待这三个预约请求的确认。•5.在收到确认之后,AcmeTravel会通知Karla流程成功完成,并将预约确认号和最终的旅程细节发送给她。•6.一旦Karla被告知她请求的旅程成功或失败之后,她就可以提交另一个旅行请求了。流程的实现?•在同时应对多个独立的业务伙伴时,他们都可能会用不兼容的技术以及不同的业务需求来实现流程中属于自己的那部分;•这就决定了,集成只能在一个很高的层次上解决。•Web服务相关的规范(草案)•BusinessProcessExecutionLanguageforWebService(BPEL4WS)•WebServicesCoordination(WSC)•WebServicesTransaction(WST)实施的步骤•第1步:定义业务流程(BPEL4WS)•第2步:协作和事务(WSC,WST)•第3步:运行时(BPEL4J)BPEL4WSpartnerspartnername=customerserviceLinkType=agentLinkmyRole=agentService/partnername=airlineserviceLinkType=buyerLinkmyRole=ticketRequesterpartnerRole=ticketService//partnersserviceLinkTypename=buyerLinkrolename=ticketRequesterportTypename=itineraryPT//rolerolename=ticketServiceportTypename=ticketOrderPT//role/serviceLinkTypecontainerscontainername=itinerarymessageType=itineraryMessage/containername=ticketsmessageType=ticketsMessage//containersflowlinkslinkname=order-to-airline/linkname=airline-to-agent//linksreceivepartner=customer“portType=itineraryPToperation=sendItinerarycontainer=itinerary“sourcelinkNameorder-to-airline//receiveinvokepartner=airline“portType=ticketOrderPT“operation=requestTickets“inputContainer=itinerary“targetlinkNameorder-to-airline/sourcelinkNameairline-to-agent//invokereceivepartner=airlineportType=itineraryPToperation=sendTicketscontainer=ticketstargetlinkNameairline-to-agent//receive/flowfaultHandlerscatchfaultName=noSeatsAvailableinvokepartner=customer“portType=travelPT“operation=sendRejection“inputContainer=rejection//catch/faultHandlers应用前景&案例•1.业务流程自动化–BPEL4WS中的整合原语来自于工作流和业务流程集成方面多年的经验,因此,BPEL4WS的定位是成为一种业务流程整合语言–解决方案/应用的动态构建–按需服务(Serviceon-demand)•2.处理模型(地学处理模型)的形式化表达–大量的计算模型–模型的共享•3.实际的应用案例–NASA•动态满足用户的数据/功能的需求总结•1.Web服务成为推动网络信息共享的有力工具;•2.长期以来,业务流程自动化是人类的梦想;随着自动化流程描述和管理系统的出现,随着知识表达工具的日益成熟,这种梦想的现实性越来越大;•3.业务流程自动化在地学领域的典型应用就是促进共享的动态性:把设计时和运行时分开,由静态共享演变为动态共享。
本文标题:基于Web服务的业务流程
链接地址:https://www.777doc.com/doc-2572824 .html