• 1. 鸿合窗景SOA架构调研鸿合窗景
  • 2. http://www.honghe-tech.com/主要内容SOA概念及方法论1服务建模4SOA系统架构设计5项目实施6BPM 和 工作流2业务建模3
  • 3. http://www.honghe-tech.com/SOA概念及方法论企业面对的问题 SOA概念 IBM CBM 和 SOMA SCA/SDOBPELSOA概念 及相关标准ESB 企业服务总线
  • 4. http://www.honghe-tech.com/SOA概念及方法论企业面对的问题 SOA概念 IBM CBM 和 SOMA SCA/SDOBPELSOA概念 及相关标准ESB 企业服务总线
  • 5. http://www.honghe-tech.com/SOA概念及方法论企业面对的问题 现状分析: 企业以应用为中心构建IT基础设施,如,供应链管理系统,ERP系统等 一个请求很难调用多个业务系统信息孤岛人员,资源,支持的变更, 开发时间,开发工具的不同人事管理系统财务管理系统ERP其他系统
  • 6. http://www.honghe-tech.com/SOA概念及方法论企业面对的问题 企业面对急剧的市场竞争及需求的不断变化 业务整合:提高业务流程的执行效率,对市场机会做出敏捷的反映 企业整合:实时掌控企业信息,将传统的以部门为导向的纵向决策转换到面向市场的横向决策 企业IT面对的挑战 系统:部分IT系统由没有实现互联互通的信息孤岛组成 开发:业务系统开发周期过长,难以应付需求的经常变化,导致业务机会的丧失 支持企业和业务整合的局限性 以往系统不强调整体规划,不适应跨部门集成需要 因为以往技术实现,业务流程难以整合 IT整合存在高成本和高风险且人才难觅,局部变化会影响整个系统
  • 7. http://www.honghe-tech.com/SOA概念及方法论企业面对的问题 SOA概念 IBM CBM 和 SOMA SCA/SDOBPELSOA概念 及相关标准ESB 企业服务总线
  • 8. http://www.honghe-tech.com/SOA概念及方法论SOA概念引入 使用SOA方法论解决业务与IT的问题 SOA是一种方法论 业务架构与技术架构的对应,是业务与技术融合的产物 将不同粒度的业务以服务为单位打包发布,构成服务组件,松散连接,按需服务。 SOA的特点 强调继承与发展:继承以往系统和 技术(组件,对象和分布式系统),并发展综合应用 应用IT的统一和灵活实现适合企业自身的标准继承平台 SOA的价值 实现了跨越了不同应用系统,不用技术的整合 降低企业整合时IT信息系统的风险和成本并快速适应业务变化 实现IT变化能力与业务需求变化的匹配
  • 9. http://www.honghe-tech.com/SOA概念及方法论SOA概念 服务 一个可重复的业务服务,只和业务相关,独立于具体技术的业务功能接口(如创建账号,查询订单等)面向服务 将业务整合成连接在一起的一系列服务的过程及结果 面向服务的架构 使用面向服务的理念设计IT集成系统的架构风格或者方式应用方法论 通过一定的架构模式实现服务的流程编排并利用总线机制完成访问服务的流转导向
  • 10. http://www.honghe-tech.com/SOA概念及方法论理解面向服务层次 以往以需求的形式 SOA 上升到业务高度 业务 模型技术 模型业务 模型技术 模型服务 模型
  • 11. http://www.honghe-tech.com/SOA概念及方法论SOA典型定义 IBM的定义 SOA是一个组件模型,其核心是服务,它将应用程序的不同功能单元通过定义良好的接口和契约联系起来 这些应用程序的不同功能单元被称为服务 接口采用中立的方式进行定义的,独立于实现服务的硬件平台、操作系统和编程语言 系统中的服务可以以统一、通用的方式交互 典型定义 SOA 是一种架构面的方法论,用来产生松耦合、互通的业务服务,这些服务可轻易地在企业内和跨企业间共享并重复利用
  • 12. http://www.honghe-tech.com/SOA概念及方法论SOA 架构业务流程管理 (BPM/Workflow)企业服务总线 ESB应用访问服务数据服务遗留系统一系统三系统 N门户移动服务注册/ 存储库DB数据仓库系统二 安全或者权限
  • 13. http://www.honghe-tech.com/SOA概念及方法论SOA要素 松散耦合 服务之间的松散耦合 接口和实现之间的松散耦合 业务组件和传输协议之间的松散耦合 粗粒度 服务的接口比面向对象编程的API大,更接近用户的实际操作 位置和传输协议透明 位置透明:指不论服务组件的实际位置URL如何变化,客户端的调用程序都不需要改变 传输协议透明:不管服务组件的传输协议如何变化,客户端的调用程序的传输协议都不需要改变
  • 14. http://www.honghe-tech.com/SOA概念及方法论SOA使传输协议透明 SOA的思想是通过ESB企业服务总线对目前的组件接口进行进一步的管理 企业服务总线 ESB接 口接 口接 口接 口接 口接 口接 口应用服务应用服务应用服务应用服务应用服务应用服务应用服务应用服务应用服务应用服务应用服务应用服务应用服务应用服务应用服务应用服务接 口接 口接 口
  • 15. http://www.honghe-tech.com/SOA概念及方法论企业面对的问题 SOA概念 IBM CBM 和 SOMA SCA/SDOBPELSOA概念 及相关标准ESB 企业服务总线
  • 16. http://www.honghe-tech.com/ESB 企业服务总线ESB定义 ESB 是 SOA 的一种实现模式,接入 ESB 的应用都将封装为服务的形式 作为服务提供者和消费者之间的中介,对服务消费者屏蔽提供者位置,协议等技术细节 可以在其中设计消息路由,然后由其来完成消息的路由,格式、协议的转换 / 翻译,以及消息的分发
  • 17. http://www.honghe-tech.com/ESB 企业服务总线SOA的工作中心 中介服务 路由 传输事件服务 发布和订阅基于标准 HTTP/HTTPS JMS, JAX-RPC, SOAP WS-Security, WS-Policy, WS-Addressing
  • 18. http://www.honghe-tech.com/ESB 企业服务总线ESB具有的功能 完善的服务组件模型,包括服务组件的编程模型(将会在下几节讲到) SCA:是一个 SOA 的编程模型,将业务功能作为一系列的服务而提供,工作单元服务组件 SDO:是一个数据应用系统开发框架,在 SOA 系统中充当抽象数据 BPEL:用来编排流程服务的规范 松耦合链接服务调用者与提供者的组装模型 支持多种接入方式,通讯协议转换
  • 19. http://www.honghe-tech.com/ESB 企业服务总线ESB可扩展功能 与服务 注册库 集成 安全 高性能 可靠性 监控 与 管理 简化开 发和部 署 ESB扩展功能
  • 20. http://www.honghe-tech.com/SOA概念及方法论企业面对的问题 SOA概念 IBM CBM 和 SOMA SCA/SDOBPELSOA概念 及相关标准ESB 企业服务总线
  • 21. http://www.honghe-tech.com/IBM CBM和SOMA分析IBM成熟的业务组件分析和建模理念 传统业务流程概念 从组织结构来看 把企业分成了独立的功能性部门,无法跨部门协作为客户创造价值 基于价值链的业务模型 具有价值链的运作模型,但没有关键指标这些核心标准 CBM是什么,能为我们提供什么?
  • 22. http://www.honghe-tech.com/IBM CBM和SOMACBM (组件化商业模式 ) 概述:是IBM企业规划,IT规划的核心方法论 企业的商业模式设计方法论发展:
  • 23. http://www.honghe-tech.com/IBM CBM和SOMA公司由不同业务模块组合成一个业务网络 IT融资采购人力资源
  • 24. http://www.honghe-tech.com/IBM CBM和SOMACBM来由-一种全新业务模型 是公司的基本建筑单元,彼此松散连接,允许企业进行扩展或发展 每个模块中都包含一系列彼此关联的活动,既能为组织发挥作用,又能作为单独实体运行 每个模块都必须与公司架构和战略保持一致,实现企业级优化 业务模块业务组件企业级优化
  • 25. http://www.honghe-tech.com/IBM CBM和SOMACBM应用-业务组件映射 责任级别: 区分战略决策(引导) 管理检查(控制) 业务行动(执行) 业务能力: 执行活动的描述 模型应简单,并 实用业务组件: 在企业内部发 挥作用的各个 业务模块 组件间以协议 无缝集成形成企业的组件视图
  • 26. http://www.honghe-tech.com/IBM CBM和SOMACBM业务组件映射 零售业范例 热组件: 即企业中可重复利用,可独立,且内聚高的业务组件,可向外提供服务
  • 27. http://www.honghe-tech.com/IBM CBM和SOMASOMA 面向服务的建模和体系结构 定义: 是用于SOA解决方案实现的端到端的方法, 是用于SOA设计和构造以支持目标业务流程的分析和设计方法
  • 28. http://www.honghe-tech.com/IBM CBM和SOMASOMA 作用 作用:识别、规约和实现服务 识别服务两种种方式: 1.通过CBM分解出业务服务 2.对现有系统分析,完成的业务就是服务制定服务规约: 1.接口签名 2.数据对象 3.组件设计 由组件提供相应服务,服务通过接口暴露决策服务的实现 : 如何实现服务, 1.自己实现: (1).新建JAVA服务,还是流程服务 (2).人工服务 (3).业务规则 2.封装遗留系统 规约服务实现服务
  • 29. http://www.honghe-tech.com/SOA概念及方法论企业面对的问题 SOA概念 IBM CBM 和 SOMA SCA/SDOBPELSOA概念 及相关标准ESB 企业服务总线
  • 30. http://www.honghe-tech.com/SCA/SDOSOA编程模型 模块用户接口信息业务对象
  • 31. http://www.honghe-tech.com/SCA/SDOSCA 服务组件架构 由IBM和BEA提出的一套面向服务的SOA编程模型或者编程架构,是SOA思想的一种实现方式。 特点: 独立于程序语言 独立于传输协议 目的: 不需要太大代价就能完成现有系统集成 将服务组件与传输协议达到解藕,达到服务组件的课重用性
  • 32. http://www.honghe-tech.com/SCA/SDOSCA组成元素介绍 组件对比 独立于具体语言和通信协议,是一种服务性组件需要通过相关技术实现客户端 调用服务端接口,脱离具体 语言EJB客户端调用服务端的接口组件, 且具体技术要一致最简单的组件,可 直接被调用,但 肯定耦合SCA服务组件Web ServiceEJBJAVA类技术组件 或其他语言技术组件 RMI远程协议技术组件 SOAP通信协议服务组件服务组件?
  • 33. http://www.honghe-tech.com/SCA/SDOSCA 服务组件 接口 引用 实现 服务组件:通过配置生产的一个 实现(Implentation)的实例实现类型接口服务对 其 他 组 件 的 引 用服务/接口:让其他组件调用的 接口实现:实现所创建的服务,比如一个实现类引用:引用其他组件时的配置
  • 34. http://www.honghe-tech.com/SCA/SDOSCA 模块 连线 通过模块将SCA组件连接在一起基本原理: 通过连线(Wire)将组件连接起来, 连线将组件的服务和引用连接起 来
  • 35. http://www.honghe-tech.com/SCA/SDOSCA 服务与通信协议绑定 组件配置 通信协议绑定 客户端调用 SCADomain scaDomain = SCADomain.newInstance(“Hello.composite”);//调用模块 HelloService helloService = scaDomain.getService(HelloService.class,”HelloServiceComponent”);//调用服务 System.out.println(helloService.getHello(“HongHe”));
  • 36. http://www.honghe-tech.com/SCA/SDOSDO 服务数据对象 目的 实现数据代码与业务代码的解藕,简化对于数据的编程 统一访问不同数据源的数据模型 对于常见的应用程序提供支持,查询,浏览,绑定,更新,检查数据 提供使用Type,Property,Sequence来访问数据 DMS(Data Meditor Service) 数据中介服务数据图(DataGraph)数据对象(DataObject)
  • 37. http://www.honghe-tech.com/SOA概念及方法论企业面对的问题 SOA概念 IBM CBM 和 SOMA SCA/SDOBPELSOA概念 及相关标准ESB 企业服务总线
  • 38. http://www.honghe-tech.com/BPELBPEL 业务流程执行语言 作用:是用来编排流程服务的规范 服务技术:Web Service 原理: 通过WSDL给出的PortType接口,接口操作,输入变量,输出变量对Web Service操作 引用的其他服务叫做Partner及连接,变量声明,异常等 BPEL活动: / 接收/恢复 / 赋值/调用 / 条件/否则 / 顺序/并行 // 链接/源/目标 // 选择/监听/闹钟
  • 39. http://www.honghe-tech.com/ESB小结ESB和SCA SDO BPEL的关系 ESB企业由流程驱动流程由业务组件组成用BPEL组合服务用SCA组装服务SOA的EAI
  • 40. http://www.honghe-tech.com/ESB小结ESB和SCA SDO BPEL的关系 SCA/SDO 提供中介流组件ESB SOA的实现模式 中介服务BPEL(核心) 作用:中介流 设计消息路由, 来完成消息的路由,格式、协议的转换 / 翻译,以及消息的分发
  • 41. http://www.honghe-tech.com/SOA概念及方法论总结SOA方法论总结 问题: 理论如何联系实践?SOA如何落地? 各种规范如何实现?
  • 42. http://www.honghe-tech.com/SOA概念及方法论总结理论如何联系实践?SOA如何落地? SOA思想: 从企业业务(甚至战略)出发,使用CBM和SOMA提取服务组件 通过ESB(企业服务总线)提供的服务规范(SCA)和数据规范(SDO)分析出服务,组件,模块 经过一定的BPEL服务编排,跨越了具体通信标准(Web Service,EJB,JMS)和具体开发语言 达到企业角度的业务服务提供和优化
  • 43. http://www.honghe-tech.com/SOA概念及方法论总结业务分析方法到IT分析方法的映射 SOA业务到IT的映射 方法体系业务服务/接口数据对象业务活动/流程服务/实现/接口SDO数据对象BPEL活动CBM SOMASCA SDO BPEL业务组件 组件
  • 44. http://www.honghe-tech.com/主要内容SOA概念及方法论1服务建模4SOA系统架构设计5项目实施6BPM 和 工作流2业务建模3
  • 45. http://www.honghe-tech.com/BPM 和 工作流BPM 业务流程管理工作流 BPM 和 工作流工作流与BPM的关系BPM 与 SOA工作流在SOA中的应用
  • 46. http://www.honghe-tech.com/BPM 和 工作流BPM 业务流程管理工作流 BPM 和 工作流工作流与BPM的关系BPM 与 SOA工作流在SOA中的应用
  • 47. http://www.honghe-tech.com/BPM 业务流程管理业务流程 流程:一组能为客户提供或者达到目标价值的一系列相互关联活动进程 特点: 是一些列活动的组合 一组能够创建价值的活动 要素:输入的资源,活动,活动的相互作用,输出的结果,顾客,价值 输入资源输出结果若干活动我满意,因为流程 为我创造了价值活动活动活动
  • 48. http://www.honghe-tech.com/BPM 业务流程管理BPM 定义及解决方案 管理角度:一套达成企业各种业务环节整合的全面管理模式。 实现跨应用,跨部门,跨合作伙伴与客户的企业运作。 实施角度:一套设计,执行,管理,监控并优化业务流程的技术和标准
  • 49. http://www.honghe-tech.com/BPM 业务流程管理BPM 定义及解决方案 解决方案 业务流程评估,分析及建模:注重获得业务流程详细信息和变化对流程的潜在影响 工作流自动化/流程服务:注重在以人为中心的自动化流程上 企业程序集成:注重在不同系统之间的信息交互 业务监控活动:注重在分析业务流程和活动的效率及效力,关注KPI(关键绩效指标)
  • 50. http://www.honghe-tech.com/BPM 业务流程管理BPM 解决方案 IBM BPM产品线 WebSphere Business Modeler:进行业务流程建模,能够可视化、归档、模拟和分析业务流程。 WebSphere Integration Developer:可视直观拖放技术构建流程和集成解决方案,从而真正确定业务流程的顺序和流量,并对解决方案测试、调试和部署 WebSphere Process Server:高性能的业务流程自动化引擎,可帮助编排业务流程 WebSphere Business Monitor:使业务用户能够在可定制的易用仪表板、企业门户网站查看业务流程实施情况并侦测和管理业务状况,加速持续的流程改进和业务创新
  • 51. http://www.honghe-tech.com/BPM 和 工作流BPM 业务流程管理工作流 BPM 和 工作流工作流与BPM的关系BPM 与 SOA工作流在SOA中的应用
  • 52. http://www.honghe-tech.com/BPM 与 SOABPM 与 SOA 的关系 BPM阵营:SOA对于实现BPM不必须的,实施BPM套件就可以了 SOA阵营:BPM是SOA的一个特性,是SOA解决方案的一部分,而不是一个单独的东西 区别 本质不同 SOA是一种架构方法 BPM则是一种业务协调活动
  • 53. http://www.honghe-tech.com/BPM 与 SOA组合BPM与SOA 实施整体方案 部署BPM套件:获得快速建模,创建,执行和监控/管理业务流程的能力 业务分析人员 -> 业务流程模型 实现业务流程模型用户与流程交互与底层 IT系统 集成BPM套件支持使用不同技术访问 应用程序和数据库
  • 54. http://www.honghe-tech.com/BPM 和 工作流BPM 业务流程管理工作流 BPM 和 工作流工作流与BPM的关系BPM 与 SOA工作流在SOA中的应用
  • 55. http://www.honghe-tech.com/工作流工作流介绍 工作流是一种反映业务流程的计算机化的模型,实现经营过程集成与经营过程自动化而建立的可由工作流管理系统执行的业务模型 工作流反映了业务过程的自动化,描述的是可由计算机系统支持运行的业务过程 工作流根据业务规则将系统中的各种资源相互关联,并协调完成整个业务过程
  • 56. http://www.honghe-tech.com/工作流工作流订单销售实例描述 1、用户发出订单,描述计算机配置和台数 2、公司收到订单 1)满足客户要求,继续 2)不满足客户要求,拒绝 3、检查订单(3个任务并发执行) 1)计算价格 2)检查库存部件是否满足要求 3)进行配置检查,满足订单要求 4、决策 1)通过检查,继续进行 2)未通过检查,则向用户解释原因 5、等待接收确认,并要求付款 6、发出通知 7、装配计算机 8、送货
  • 57. http://www.honghe-tech.com/工作流工作流订单销售实例描述
  • 58. http://www.honghe-tech.com/工作流工作流规范
  • 59. http://www.honghe-tech.com/工作流WFMC XPDL BPEL(Business Process Executting Language ): BPEL是一种用于描述Web service的编排的流程描述语言。 关注更多的是流程内部的定义与交互,BPEL的重点是把多个活动以流程的方式组合起来,成为一个新的程序,这个程序内部的模块相互可以传递数据,并且作为一个事务而管理。 BPEL的重点是把多个活动以流程的方式组合起来,成为一个新的程序,这个程序内部的模块相互可以传递数据,并且作为一个事务而管理 ,BPEL多用于业务整合,业务流程管理等方面。 XPDL的重点是把流程的结构描述出来,至于流程内的各个活动之间的关联,以及整个流程的事务管理则不在考虑之列, XPDL多用于文档管理,业务流程组织以及映像编辑管理业务等方面。
  • 60. http://www.honghe-tech.com/工作流JBPM JPDL BPEL(Business Process Executting Language ): BPEL是一种用于描述Web service的编排的流程描述语言。 关注更多的是流程内部的定义与交互,BPEL的重点是把多个活动以流程的方式组合起来,成为一个新的程序,这个程序内部的模块相互可以传递数据,并且作为一个事务而管理。 BPEL的重点是把多个活动以流程的方式组合起来,成为一个新的程序,这个程序内部的模块相互可以传递数据,并且作为一个事务而管理 ,BPEL多用于业务整合,业务流程管理等方面。 XPDL的重点是把流程的结构描述出来,至于流程内的各个活动之间的关联,以及整个流程的事务管理则不在考虑之列, XPDL多用于文档管理,业务流程组织以及映像编辑管理业务等方面。
  • 61. http://www.honghe-tech.com/工作流工作流管理规范 BPEL(业务流程执行语言) 是一种“执行语言”。WS-BPEL的目标是提供Web Service编排的定义,如顺次交互,从一个点到另一个点的数据流。它具有语法结构,包含变量和操作。操作可以发送和接受SOAP消息,对XML和 XML转换有强大的支持。可以方便的同时调用多个Web Service,并同步结果。它不具有任何支持图形表示的元素,例如活动没有大小和位置,也没有可以表述“指向”的元素。 BPEL的主要内容: 编排Web Service的各种交互,如invoke、receive、reply等。 顺序、分支和各种流程控制方式。 异常处理,包括错误条件,事务和补偿。 数据流和数据操作。 超时处理。 1.WS-BPEL使用sequence、if/else、repeatUntil、pick、links、forEach等结构化xml元素(Structured Activities)表述对Web Service的调用顺序关系,类似于一种使用XML对Web Service进行编程的语言。而XPDL没有这些元素,XPDL使用连接弧的转移表达节点的先后执行顺序。XPDL的节点类型主要为自动节点、人工节点、嵌套子流程、块活动、路由活动等。 2.WS-BPEL使用assign、query、from/to等xml元素执行流程属性数据的赋值运算等;XPDL没有这些元素。 3. WS-BPEL本身没有任务分配方式的概念,缺乏子流程SubFlow的语义,没有“应用程序application”定义的概念,对于WS-BPEL的invoke、receive、reply等类型节点与外部的调用均是对Webservice的调用。而XPDL通过“应用程序application”定义各种各样的应用程序,表示人工参与到流程中需要执行的各种程序。 4. XPDL定义了流程仿真、流程版本等元素,WS-BPEL没有这些概念。
  • 62. http://www.honghe-tech.com/工作流BPEL注意的问题 重要概念: 1.编制和编排 编制:Orchestration.首先说明BPEL属于流程编制标准.流程编制使用一个中心流程来协调不同的 Web 服务操作。这个中心流程了解编制的总体目标、涉及的操作以及操作的调用顺序。 编排:Choreography.可描述多个贸易伙伴为了实现多组织业务功能而进行的交互。也就是说编排主要描述的不同流程之间的交互情况.例如,在供应链方面,实施产品采购可能涉及到多家公司的定单、发货通知单和资金的交互。编排不描述每个公司如何处理操作,只描述不同公司如何彼此交互。 2.人工流程 有些活动要求相关人员做出判断,或要借助人员的专业知识(例如手动处理异常情况或审批请求等),这些活动将始终由人进行,而不是有程序或计算机执行的。BPEL为了弥补自己对人工流程支持上的不足,又定义了BPEL4PEOPLE的标准. BPEL4People 扩展提供了通过嵌入人工任务扩展业务流程所需的扩展功能。它可处理将手动任务呈现为不透明的独立 Web 服务的场景. BPEL的主要是用来支持基于Web service的自动化业务流程,没有任何有关人工活动的内容,如XPDL可结合应用程序人工处理逻辑
  • 63. http://www.honghe-tech.com/工作流XPDL BPEL JPDL 区别 从严格意义上讲,BPEL与XPDL不是一个层次的规范: XPDL标准表现为一种流程定义的格式,它是一个围绕BPM建模、运行和管理整个生命周期所建立的模型。它可以表述流程定义的绘制。 XPDL的节点元素具有X/Y坐标和大小,XPDL具有连接弧的概念,可对连接弧的转移给予具体的条件设置。节点和连线指定了执行方面的具体信息,比如角色、活动描述、实现、Web Service调用等。
  • 64. http://www.honghe-tech.com/工作流工作流管理规范 BPEL(业务流程执行语言) BPEL(Business Process Executting Language ): BPEL是一种用于描述Web service的编排的流程描述语言。 关注更多的是流程内部的定义与交互,BPEL的重点是把多个活动以流程的方式组合起来,成为一个新的程序,这个程序内部的模块相互可以传递数据,并且作为一个事务而管理。 BPEL的重点是把多个活动以流程的方式组合起来,成为一个新的程序,这个程序内部的模块相互可以传递数据,并且作为一个事务而管理 ,BPEL多用于业务整合,业务流程管理等方面。 XPDL的重点是把流程的结构描述出来,至于流程内的各个活动之间的关联,以及整个流程的事务管理则不在考虑之列, XPDL多用于文档管理,业务流程组织以及映像编辑管理业务等方面。
  • 65. http://www.honghe-tech.com/工作流工作流管理规范 WFMC(工作流管理联盟) XPDL: WFMC发布了基于XML的流程定义语言 XPDL(XML Process Definition Language ) 内容:一个工作流包括一组活动及它们的相互顺序关系,还包括过程及活动的启动和终止条件,以及对每个活动的描 述。工作流管理系统指运行在一个或多个工作 流引擎上用于定义、实现和管理工作流运行的一套软件系统,它与工作流执行者(人、应用)交互,推进工作流实例的执行,并监控工作流的运行状态。 WFMC主要提出了五个接口与工作流执行服务一起共同组成了工作流系统: 接口一 (工作流定义交换),用于在建模和定义工具与执行服务之间交换工作流定义。主要是数据交换格式和API。数据交换通过XPDL,API通过WAPI。 接口二 (工作流客户端应用接口),用于工作流客户端应用访问工作流引擎和工作列表,通过WAPI完成。 接口三 (被调用的应用接口),用于调用不同的应用系统。 接口四 (工作流系统互操作接口),用于不同工作流系统之间的互操作。 接口五 (系统管理和监控),用于系统管理应用访问工作流执行服务。
  • 66. http://www.honghe-tech.com/工作流XPDL与BPEL 比较 On the
  • 67. http://www.honghe-tech.com/工作流工作流表单 表单设计分成:普通采集节点,标准审核节点,数量审核节点。表单设计工具应该考虑前一个,后两个是固定的。 通常业务流转需要表单来表达实际的业务,因此需要与表单进行集成来实现业务意义,与表单的集成通常包括表单数据的自动获取、存储、修改,表单域的权限控制、流程相关数据的维护以及流程环节表单的绑定。
  • 68. http://www.honghe-tech.com/工作流工作流核心调度算法 FSM 有限状态机 内容: FSM 的定义为包含一组状态集(states)、一个起始状态(start state)、一组输入符号集(alphabet)、一个映射输入符号和当前状态到下一状态的转换函数(transition function)的计算模型。当输入符号串,模型随即进入起始状态。它要改变到新的状态,依赖于转换函数。在有限状态机中,会有有许多变量,例如,状态机有很多与动作(actions)转换(Mealy机)或状态(摩尔机)关联的动作,多重起始状态,基于没有输入符号的转换,或者指定符号和状态(非定有限状态机)的多个转换,指派给接收状态(识别者)的一个或多个状态,等等。
  • 69. http://www.honghe-tech.com/Hot TipHow do I incorporate my logo to a slide that will apply to all the other slides? On the [View] menu, point to [Master], and then click [Slide Master] or [Notes Master]. Change images to the one you like, then it will apply to all the other slides. [ Image information in product ] Title Image – www.multibits.co.kr - CD: Aditive (DegitalVision) Note to customers: This image has been licensed to be used within this PowerPoint template only. You may not extract the image for any other use.
  • 70. http://www.honghe-tech.com/Hot TipHow do I incorporate my logo to a slide that will apply to all the other slides? On the [View] menu, point to [Master], and then click [Slide Master] or [Notes Master]. Change images to the one you like, then it will apply to all the other slides. [ Image information in product ] Title Image – www.multibits.co.kr - CD: Aditive (DegitalVision) Note to customers: This image has been licensed to be used within this PowerPoint template only. You may not extract the image for any other use.
  • 71. http://www.honghe-tech.com/Hot TipHow do I incorporate my logo to a slide that will apply to all the other slides? On the [View] menu, point to [Master], and then click [Slide Master] or [Notes Master]. Change images to the one you like, then it will apply to all the other slides. [ Image information in product ] Title Image – www.multibits.co.kr - CD: Aditive (DegitalVision) Note to customers: This image has been licensed to be used within this PowerPoint template only. You may not extract the image for any other use.
  • 72. http://www.honghe-tech.com/工作流工作流系统组成 工作流引擎:为工作流管理系统的核心部分,主要提供了对于工作流定义的解析以及流程流转的支持。工作流定义文件描述了业务的交互逻辑,工作流引擎 通过解析此工作流定义文件按照业务的交互逻辑进行业务的流转,工作流引擎通常通过参考某种模型来进行设计,通过调度算法来进行流程的流转(流程的启动、终 止、挂起、恢复等),通过各种环节调度算法(SPLIT、AND、OR等)来实现对于环节的流转(环节的合并、分叉、选择、条件性的选择等)。 工作流设计器:工作流设计器为可视化的流程设计工具,用户通过拖放等方式来绘制流程,并通过对于环节的配置来实现环节操作、环节表单、环节参与者的配置。 流程操作:流程操作指所支持的对于流程环节的操作,如启动流程、终止流程、挂起流程、直流、分流(单人办理)、并流(多人同时办理)、联审等 工作流客户端程序:工作流客户端程序为工作流系统的表现形式,通常使用Web方式进行展现,通过提供待办列表、已办列表、执行流程操作、查看流程历史信息等来展现工作流系统的功能。 流程监控:流程监控通过提供图形化的方式来对流程执行过程进行监控,包括流程运转状况,每个环节所耗费的时间等等,而通过这些可相应的进行流程的优化,以提高工作效率。 表单设计器:表单设计器为可视化的表单设计工具,用户通过拖放的方式来绘制业务所需的表单,并可相应的进行表单数据的绑定。 与表单的集成:通常业务流转需要表单来表达实际的业务,因此需要与表单进行集成来实现业务意义,与表单的集成通常包括表单数据的自动获取、存储、修改,表单域的权限控制、流程相关数据的维护以及流程环节表单的绑定。 与应用程序的集成 :过与应用程序的集成来完善工作流管理系统的业务意义,主要涉及到的是与权限系统以及组织机构的集成。流程环节需要相应的绑定不同的执行角色,而流程操作通常需要与权限系统、组织机构进行关联。
  • 73. http://www.honghe-tech.com/工作流工作流管理系统
  • 74. http://www.honghe-tech.com/工作流JBOSS JBPM JBOSS JBPM是一个灵活,可扩展的工作流管理系统 JBOSS JBPM拥有直观的流程语言,用任务,异步的等待状态,定时器,自动化动作…等来表示业务流程图,把这些操作绑定在一起,JBOSS JBPM就拥有了非常强大和可扩展的控制流程机制。 JBOSS JBPM是采用JAVA语言开发的流程引擎,可将其封转成Web Service以供第三方调用 JBOSS JBPM只有最小的依赖,可以像使用JAVA库一样使用它,另外,也可以通过把它部署在J2EE集群应用服务器中,用在吞吐量极为关键的环境中。 JBOSS JBPM与HIBERNATE集成,可被配置为任何数据库,并且可以部署在任何服务器上。 JBOSS JBPM按JBOSS自行规定的JPDL规范执行。
  • 75. http://www.honghe-tech.com/工作流JBPM组件 工作流引擎:核心组件,负责生成流程运行时的各种实例及数据,以及监视和管理流程的运行。 流程定义(ProcessDefinition):预先定义的业务逻辑 流程实例(processInstance):业务的实际流转过程 参与者(Actor):参与流程的参与者,个人,角色,组织等等。 任务(task):业务逻辑上定义的需要呈现给参与者参与处理的元素 任务实例(taskInstance):业务实际流转过程中,生成的需要参与者进行参与的实际内容 流转(transition):连接业务逻辑不同节点的桥梁,也是流程进行的载体 令牌(token):记录流程当前状态及位置及记录父子流程及分支等 信号(signal):触发流程流转的标志 工作列表(worklist):根据实际应用的需求,需要展示给参与者的任务实例列表
  • 76. http://www.honghe-tech.com/工作流JBPM流程处理步骤 加载流程定义,并部署到数据库 ProcessDefinition.parseXmlResource(String); - 读取流程定义文件,创建processdefinition对象 context.deployProcessDefinition(definition); - 部署流程到数据库 创建流程实例,启动流程,并与上下文环境绑定 jbpmConfiguration.createJbpmContext(); - 创建jbpmContext对象 new ProcessInstance(definition); - 创建流程实例 流程任务处理 List tasks = context.getTaskMgmtSession().findTaskInstances(“张三”); - 查找张三的任务列表 …… 流程监控与管理 taskInstance.end();
  • 77. http://www.honghe-tech.com/工作流JBPM Process Definition流程定义 可用JBPM图形化设计器设计流程定义
  • 78. http://www.honghe-tech.com/工作流JBPM Process Definition流程定义
  • 79. http://www.honghe-tech.com/工作流Action人工处理 import java.util.List; import org.jbpm.graph.def.ActionHandler; import org.jbpm.graph.def.Node; import org.jbpm.graph.def.Transition; import org.jbpm.graph.exe.ExecutionContext; import org.jbpm.graph.exe.ProcessInstance; import c20.base.BeanFactory; import c20.entity.Article; import c20.service.ArticleService; /** * 文章发布处理器 */ public class PubActionHandler implements ActionHandler { public void execute(ExecutionContext context) throws Exception { //得到对应实例ID ProcessInstance processInstance = context.getContextInstance().getProcessInstance(); //得到当前执行转换 Transition transition = context.getTransition(); Node node = transition.getTo(); //得到对应的文章 ArticleService articleService = (ArticleService)BeanFactory.getBean("articleService"); List list = articleService.getArticlesByPdInstance(processInstance.getId()); //设置文章状态为发布中 if(list != null){ for(int i=0; i
  • 80. http://www.honghe-tech.com/工作流启动流程 流程定义可以是内存加载,可以是文件,也可以从数据库读出加载 定义好业务逻辑的流程定义后,就可以使用该定义进行实际业务运行 在流程定义的基础上创建流程实例,即ProcessInstance 使用JBPM提供的API创建流程实例 ProcessDefinition definition = ProcessDefinition.parseXmlResource(String); - 读取流程定义文件,创建processdefinition对象 ProcessInstance instance = new ProcessInstance(definition); - 创建流程实例 context.save(processInstance); - 存储流程实例
  • 81. http://www.honghe-tech.com/工作流流程监控及处理 记录流程状态包括且不限于以下内容: 1.流程实例的创建 2.任务实例的创建 3.任务实例的执行 4.任务实例的结束 5.流程实例的结束 6.统计任务执行周期,分析系统瓶颈 7.统计各业务的任务数及执行情况等
  • 82. http://www.honghe-tech.com/工作流流程定义元素组成 流程定义是一种XML语法表达的有向图结构 流程定义文件包括: Processdefinition.xml 流程定义的XML表示文件 Processimage.jpg 定义图片展示 Gpd.xml 定义文件上个节点位置信息
  • 83. http://www.honghe-tech.com/工作流构成流程定义的组成元素: Start-state :开始结点 有且只有一个 End-state :结束结点 可以有多个 Task-node :任务结点 Node :普通结点 State :状态结点 Decision : 判断 Fork : 分支 Join :集合 Subprocess :子流程 Event : 事件 流程中的事件,可看成是action的容器 Action : 动作 Script :脚本 处理类地址 Timer :定时器 Swinlane :甬道 是过程中的用户角色,可以用于任务的委派分配 Transition :流转
  • 84. http://www.honghe-tech.com/工作流结点的继承谱
  • 85. http://www.honghe-tech.com/工作流结点动作处理 start-state 流程开始节点 state 流程活动 org.jbpm.delegation. ActionHandler state-enter state-leave state-after-assignment milestone-enter milestone-leave process-state 子流程 process-start process-end process-state-enter process-state-leave decision 判断节点 org.jbpm.jpdl.Def.DecisionHandler decision-enter decision-leave fork 分支节点 fork-enter fork-eveny-leave join 联合节点 join-every-enter join-leave end-state 结束节点
  • 86. http://www.honghe-tech.com/工作流JBPM流程数据库 由于JBPM采用Hibernate实现ORM机制,因此JBPM是跨数据库的,以下是JBPM的流程数据库
  • 87. http://www.honghe-tech.com/工作流JBPM流程数据库 流程定义会被解析被部署在数据库中,以下为JBPM数据库中流程相关数据
  • 88. http://www.honghe-tech.com/工作流JBPM流程数据库表结构模型
  • 89. http://www.honghe-tech.com/工作流JBPM流程数据库表结构模型
  • 90. http://www.honghe-tech.com/工作流ESB与JBPM 工作流服务编排 已定义服务如图:
  • 91. http://www.honghe-tech.com/工作流JBPM整合服务编排
  • 92. http://www.honghe-tech.com/工作流JBPM整合服务编排流程定义 BPM_Orchestration4 IntakeService
  • 93. http://www.honghe-tech.com/工作流JBPM3与JBPM4对比 条件JBPM3JBPM4易用性提供了图形化流程设计器插件,配置方便,文档提供完整,但为分使用和开发结构文档同样提供了图形化设计器插件,易于使用,配置方便,文档结构更清晰,分使用指南和开发指南流程引擎机制基于TOKEN的流程机制,流程实例与ROOT TOKEN作用重复,是冗余,对应的数据库结构复杂,有30多个表优化了流程机制,引入了新颖的PVM(流程虚拟机),提高了流程处理效率,消除了JBPM3的ROOT TOKEN冗余,使数据库表仅为17个,降低了学习和使用的复杂度学习曲线由于ROOT TOKEN与流程实例的概念冗余,在设计和编程上都要区别节点类型而设计或者编程由于减少了冗余,结构复杂度和编程复杂度降低,还有清晰的文档,容易上手,区分公共基础型应用和高级定制化应用两种模式,让前者上手更快,后者减少开发难度开发效率提供了各类了应用接口,实现接口并处理实际逻辑即可同3,也提供相应的应用接口,实现实际逻辑即可。开发限制由于JBPM不支持WFMC的规范,所以不能兼容使用由XPDL开发的流程定义,在开发上,JBPM4不支持子流程的并发,JBPM4不支持BPEL,但开始支持BPMN规范,但JBOSS正在开发另一个BPEL的开源项目本系统分析本系统业务流程不是很复杂,使用JBPM3即可达到目标,但随着JBPM4的广泛使用和成熟度提高,及对下一代工作流BPMN规范的支持,使用JBPM4可减少现在的学习和使用复杂度,并易于随版本和规范扩展
  • 94. http://www.honghe-tech.com/Hot TipHow do I incorporate my logo to a slide that will apply to all the other slides? On the [View] menu, point to [Master], and then click [Slide Master] or [Notes Master]. Change images to the one you like, then it will apply to all the other slides. [ Image information in product ] Title Image – www.multibits.co.kr - CD: Aditive (DegitalVision) Note to customers: This image has been licensed to be used within this PowerPoint template only. You may not extract the image for any other use.
  • 95. http://www.honghe-tech.com/主要内容SOA概念及方法论1服务建模4SOA系统架构设计5项目实施6BPM 和 工作流2业务建模3
  • 96. http://www.honghe-tech.com/业务建模简单的SOA案例:工作申请系统 工作申请系统相当简单。它允许应聘者创建和提交一个申请。招聘者可以查看申请,如果觉得应聘者合适就要求棉面试。面试单位可以提供他们的反馈意见。如果应聘者觉得可以接受,薪酬就会发送给应聘者。如果应聘者句的可以接受,他的信息就会进入雇佣系统。 该应用系统中主要的实体是Application实体,它包含了所有与 应聘者相关的工作申请信息。
  • 97. http://www.honghe-tech.com/业务建模简单的SOA案例:工作申请系统 实体定义
  • 98. http://www.honghe-tech.com/业务建模简单的SOA案例:工作申请系统 相应的状态机
  • 99. http://www.honghe-tech.com/业务建模简单的SOA案例:工作申请系统 解决方案按如下装配
  • 100. http://www.honghe-tech.com/业务建模凤凰公司案例 公司架构
  • 101. http://www.honghe-tech.com/业务建模公司运作 总公司 制定销售计划 安排生产任务 执行产品配送 分公司 产品销售 合作与竞争
  • 102. http://www.honghe-tech.com/业务建模IT环境 具备了基本的IT环境 总公司和分公司都具备了各自的ERP和CRM系统 独立:IT系统没有相互连通,信息交换主要通过报表传真,电子邮件,电话或者会议完成。 异构:各IT系统采用不同的技术实现,数据格式和数据语义不一致。
  • 103. http://www.honghe-tech.com/业务建模业务与IT 销售业务操作流程业务与IT交互
  • 104. http://www.honghe-tech.com/业务建模业务层面问题与IT层面问题 业务问题 分公司销售人员不能在第一时间产生销售定单,ERP和CRM信息部共享,需要人工完成ERP订单提交 IT问题 内容
  • 105. http://www.honghe-tech.com/ESB JBPM整合BPMProcessor Action处理器 EsbActionHandler :一种Action处理类,request- reply类型,它将消息发送到服务总线上,然后等待响应。
  • 106. http://www.honghe-tech.com/ESB MESSAGEMESSAGE 消息 格式: Header (用来存放From, To, Reply-to等Addressing的信息). Body (存放信息主体) Attachment (用来存放附件等) Properties (存放消息属性) Context (消息上下文,主要是存放一些类似事务的信息等)
  • 107. http://www.honghe-tech.com/ESB ProviderProvider 请求提供者 指请求以哪种方式发送过来的,如JMS,Web Service,HTTP,FTP,FILE等等
  • 108. http://www.honghe-tech.com/ESB ServiceSERVICE Listener的作用是负责监听端口,一般来说,客户端是发送消息到Listener,然后有Listener把消息传递给ESB ,一般来说做两件事情 监听Message. ESB-unaware message和 ESB-aware message的互转.
  • 109. http://www.honghe-tech.com/主要内容SOA概念及方法论1服务建模4SOA系统架构设计5项目实施6BPM 和 工作流2业务建模3
  • 110. http://www.honghe-tech.com/主要内容SOA概念及方法论1服务建模4SOA系统架构设计5项目实施6BPM 和 工作流2业务建模3
  • 111. http://www.honghe-tech.com/BPM 与 SOA组合BPM与SOA 实施整体方案 部署SOA:BPM作为SOA的一部分部署,当一个业务流程连接到底层系统时,连接到由ESB提供的服务,就隐藏了底层应用程序和数据库的复杂性。 优点: 将业务流程连接到系统的过程会更简单 对底层IT系统更改不必影响流程所使用的接口 允许IT小组更好地管理他们所拥有和维护的服务的策略和资源 IT小组可以在服务注册库中注册服务,流程开发人员可以浏览注册库 ,确保服务可以被正确地使用和重用,而且可以简化业务流程 实践建议: 一开始就让业务运作团队和IT企业架构小组保持良好的对话,并针对未来进行规划 总结: BPM套件本身能提供丰富的连通性,无需全面应用完善的SOA使BPM运行 BPM套件应该支持SOA,这样BPM与SOA才不至于存在于独立的竖井中
  • 112. http://www.honghe-tech.com/BPM 与 SOASOA实施 采用 SOA 方法论一定要站在企业的角度去思考问题,具体的、可操作的方法就是 CBM ,更重要的是其中蕴含的思想。 首先要了解企业的战略是什么,根据战略再来了解企业的业务,可以通过业务流程建模软件模拟企业流程,分析企业问题。然后俯视整个企业,设计出业务组件模型,并暴露服务。 再通过 SOMA 方法识别出所有的服务,之后再考虑服务规约,数据对象模型的设计。 新的 SOA 编程模型 SCA ,与过去的众多用于 SOA 实现技术相结合,使得 SOA 的思想可以更好的实现,比如复用遗留系统,使用Web Service,EJB,JMS等协议通信。 SOA 和 BPM 结合起来,使得 SOA 找到了新的务实方向,业务为主,IT系统提供的服务从业务建模而来,使IT系统随业务而变,达到随需而变的目的。
  • 113. http://www.honghe-tech.com/DiagramThemeGallery is a Design Digital Content & Contents mall developed by Guild Design Inc.Title Add your textThemeGallery is a Design Digital Content & Contents mall developed by Guild Design Inc.
  • 114. http://www.honghe-tech.com/ Cycle DiagramTextTextTextTextTextCycle nameAdd Your Text
  • 115. http://www.honghe-tech.com/DiagramTextTextTextAdd Your Title Text Text 1 Text 2 Text 3 Text 4 Text 5Add Your Title Text Text 1 Text 2 Text 3 Text 4 Text 5TextText
  • 116. http://www.honghe-tech.com/DiagramConceptAdd Your TextTextTextTextTextTextText
  • 117. http://www.honghe-tech.com/DiagramAdd Your TextAdd Your TextAdd Your TextAdd Your TextAdd Your TextAdd Your TextAdd Your TextAdd Your Text
  • 118. http://www.honghe-tech.com/DiagramAdd Your TextAdd Your TextAdd Your TextAdd Your Text
  • 119. http://www.honghe-tech.com/DiagramThemeGallery is a Design Digital Content & Contents mall developed by Guild Design Inc.ThemeGallery is a Design Digital Content & Contents mall developed by Guild Design Inc.ThemeGallery is a Design Digital Content & Contents mall developed by Guild Design Inc.TextTextText
  • 120. http://www.honghe-tech.com/DiagramAdd Your TitleTextTextTextText
  • 121. http://www.honghe-tech.com/DiagramAdd your textAdd your textAdd your textAdd your textAdd your textYour Slogan here
  • 122. http://www.honghe-tech.com/Diagram1ThemeGallery is a Design Digital Content & Contents mall developed by Guild Design Inc.2ThemeGallery is a Design Digital Content & Contents mall developed by Guild Design Inc.3ThemeGallery is a Design Digital Content & Contents mall developed by Guild Design Inc.
  • 123. http://www.honghe-tech.com/DiagramYour TextYour TextYour TextYour TextYour TextYour TextYour TextYour Text2001200220032004
  • 124. http://www.honghe-tech.com/DiagramAdd Your Text hereA TitleAdd Your Text hereC TitleAdd Your Text hereB Title
  • 125. http://www.honghe-tech.com/Block DiagramTEXTTEXTTEXTTEXTTEXTTEXTTEXTTEXT
  • 126. http://www.honghe-tech.com/TableTitleTitleTitleTitleTitleTitleOOOOOTitleOOOOOTitleOOOOOTitleOOOOOTitleOOOOOTitleOXOXO
  • 127. http://www.honghe-tech.com/Text1Text2Text3Text4Text53-D Pie Chart
  • 128. http://www.honghe-tech.com/Block DiagramAdd Your TextAdd Your TextconceptConceptConceptConcept
  • 129. www.honghe-tech.comThank You !
  • 130. http://www.honghe-tech.com/Hot TipHow do I incorporate my logo to a slide that will apply to all the other slides? On the [View] menu, point to [Master], and then click [Slide Master] or [Notes Master]. Change images to the one you like, then it will apply to all the other slides. [ Image information in product ] Title Image – www.multibits.co.kr - CD: Aditive (DegitalVision) Note to customers: This image has been licensed to be used within this PowerPoint template only. You may not extract the image for any other use. 用户数 据 访 问 层业务 对象业务逻辑层业务 对象业务 对象业务 对象业务 对象服务服务服务层
  • 131. http://www.honghe-tech.com/Hot TipHow do I incorporate my logo to a slide that will apply to all the other slides? 原子服务合成服务注册服务 原子服务和合成服务运营系统服务组件消费者业务处理 合成、编制、业务状态机套装软件第三方应用面向对象 的应用渠道B2B服务供应商服务消费者整合(企业服务总线)服务质量层(安全性、管理和监控架构服务)数据架构(元数据)和商业智能治理
  • 132. http://www.honghe-tech.com/Hot TipHow do I incorporate my logo to a slide that will apply to all the other slides? On the [View] menu, point to [Master], and then click [Slide Master] or [Notes Master]. Change images to the one you like, then it will apply to all the other slides. [ Image information in product ] Title Image – www.multibits.co.kr - CD: Aditive (DegitalVision) Note to customers: This image has been licensed to be used within this PowerPoint template only. You may not extract the image for any other use.