最近开发了一套工作流系统,当然,相对比较简单,对于复杂的自动机没有实现。开发完之后对SOA有了更深入的理解。
工作流机制是SOA的灵魂,下面咱就谈谈这个灵魂。
完整的工作流系统包含三个部分:
第一,工作流本身的数据模型以及控制流程实例流转的引擎;
第二,与业务数据密切相关的工作流边界,负责关联业务数据和工作流;
第三,工作流的流程管理子系统,最理想的是可视化编辑。
目前,开源的工作流引擎有osworkflow,jbpm,shark等,这些工作流都符合工作流联盟的规范。但是要让他们符合你的需求比较难。最重要的原因是,你的系统里层级和架构设计,比如DAO的方式等规范,与他们对工作流本身数据模型管理的方式出入比较大。osworkflow里有几种可选的DAO方式,JDBC支持,hibernate支持,hibernate+spring也支持。但是整合方式未必和你的系统规范吻合。
除了在数据模型操作上有出入外,在流程管理上也未必符合你的要求。流程管理的最高境界就是让客户按需求自己去配置业务流程。而从osworkflow等提供的方式来看,客户还必须得精通xml等技术,客户还不把我们这些人宰了?因此,用他们的东西,一定程度上可以解放工作量,灵活修改流程配置,但是要求是提前跟客户沟通好有哪些具体流程,万一流程有变,还得程序员自己去修改,做不到让客户来可视化的自己拖放流程。不过IBM的dominao等做的不错,流程设计还是挺牛的。
如果工作流引擎有了,程序员要做的就是开发将业务和工作流关联起来的边界程序。别以为你有个工作流放那了,你就轻松了。引擎不知道业务数据要被如何计算,以及不知道你什么用例下才触发工作流。而且对于角色权限控制也不知道你是怎么规定的。边界程序就是要做这些事。
有几个概念容易混淆:工作流,控制流,业务流。
工作流是可以被取代的:在业务模型上多加几个控制状态的字段就可以了。
使用工作流虽然很好,但是要付出代价的:开发成本高,程序运行成本高,维护成本也高。
如果你的业务流程设计时可以用控制流,那就尽量用状态字段取代工作流吧,毕竟SOA不是用来杀鸡的刀
。
写于在公司开发完一套工作流系统后。
---------------------------------------------------------------------------------
SOA的一个中心思想就是使得企业应用摆脱面向技术的解决方案的束缚,轻松应对企业商业服务变化、发展的需要
工作流和业务流程实际上是一回事情。
SOA中用工作流引擎做集成,和基于工作流的开发类不类似,关键看粒度。当然,开发工作流引擎和使用工作流引擎,那肯定是两回事情。
可能有些人比较关注异构的问题,这个是webservice技术要解决的,如果你说这个技术就是soa,那就大错特错,还不如说cobar就是SOA呢。
OO和JAVA以及是设计模式三者的关系你理解吗?
SOA和webservice和工作流三者的关系也就好理解了哈。
引用一句话说:“WebServices是SOA的基础资源;工作流用于调用WebServices,构成了SOA的大脑和灵魂”。
分享到:
相关推荐
**执行SOA——SOA实践指南** 在信息技术领域,Service-Oriented Architecture(SOA,...通过阅读"执行SOA——SOA实践指南",IT专业人员能够获取宝贵的SOA设计和实施经验,为构建灵活、可扩展的企业级系统提供指导。
领先行业的公司中全面推广SOA的第一手经验,解释了SOA如何简化大型应用的创建和 维护。不管你的项目是包含一套巨大的、基于Web Services的组件集,还是需要将老 系统和更现代化的业务流程连接起来,《SOA实践指南...
**SOA(Service-Oriented ...通过《SOA解决方案——BEA的SOA解决方案》这份PPT,读者可以系统地学习到BEA的SOA实施策略和技术,这对于理解SOA的理论框架,以及在实际工作中构建和维护SOA系统都是非常有价值的。
通过使用成熟度模型构建SOA路线图,如Oracle的五级SOA成熟度模型:第五级SOA,企业可以开启SOA之旅,并通过每一步的成功积累来管理SOA转型过程,最终实现期望中的SOA效益,如服务重用、改进集成、互操作性和业务敏捷...
BEA(Business Enterprise Architecture,商业企业架构)在SOA领域中扮演着关键角色,特别是在早期,BEA公司是SOA解决方案的主要提供商之一。 SOA的核心概念: 1. **服务**:SOA中的核心单元是服务,它可以是任何...
### 大规模SOA系统治理中的架构支持 #### 历史回顾与演进 - **创世纪第一天:** - 在SOA旅程的开端,组织认识到SOA的重要性,并开始学习SOA的基本概念和技术。 - 组织内部达成一致意见,决定采用SOA作为其业务和...
Oracle BPEL 流程管理器是Oracle SOA 套件中的核心组件之一,专注于业务流程管理。它支持100%符合标准的方法来整合系统和服务到端到端的流程中。通过BPEL(Business Process Execution Language),企业可以定义复杂...
在大规模的SOA(Service-Oriented Architecture,面向服务架构)系统中,分布式事务处理是一项至关重要的技术。这种架构通常涉及多个独立的服务协同工作,每个服务都可能有自己的数据存储,因此,确保这些服务之间的...
总之,从IP网络到SOA网络的转变,不仅仅是技术层面的进步,更是一个从单一功能向全面整合、从封闭孤立向开放共享转变的过程。这种转变为企业提供了更高效、更灵活的IT基础设施,以适应快速变化的市场环境和不断提升...
总结来说,【基于 SOA 的教务管理系统】是通过采用SOA的松散耦合、粗粒度服务和标准化接口等原则,利用Web Service和J2EE技术,构建了一个可复用、高效率的教务管理解决方案,解决了传统系统中信息孤岛和重复开发的...
- **OMG的Unified Modeling Language (UML)**:定义了元模型和符号系统,用于在工具中表示模型元素,并在自动化环境中交换信息,支持SOA组件的设计和文档化。 ### 综合视角与实践意义 《SOA开放标准大观园——架构...
校友录系统:Web服务调用和SOA架构+部署docker容器——亲测可用
【IT SOA 转型】面向服务的架构(Service-Oriented Architecture,简称SOA)是一种设计方法,用于构建灵活、可复用和可扩展的IT系统。它强调将复杂的系统分解为一系列独立的服务,这些服务可以独立开发、部署和升级...
**SOA(Service-Oriented Architecture)异构系统交互指南** 在现代企业级应用环境中,系统集成成为了一个关键挑战。由于历史原因,许多组织都拥有由不同技术、平台和编程语言构建的异构系统。SOA(面向服务的架构...
Patterns: SOA Foundation - Business Process Management Scenario Contents Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi ...
### 流动的城市——SOA策略、方法及实施案例 #### SOA与城市规划管理的类比 在探讨SOA(面向服务的架构)时,将其与城市规划管理进行类比,不仅是一种形象的比喻,更是揭示了两者之间深层次的联系。城市规划管理...
在企业信息化建设中,SOA 被广泛应用于构建灵活、高效的信息系统架构,以支持业务流程的快速变化和集成需求。 #### 二、SOA 在企业信息系统中的应用 ##### (一)IaaS (Information as a Service) 架构 Forrester...
在这个实例中,我们看到的是一个基于SSH框架的小型SOA管理系统,它包含了学生模块和财务模块,展示了如何在实际项目中应用SOA理念。 1. **SSH框架的运用** SSH是Spring、Struts和Hibernate三个开源框架的组合,...