`
hongsoft
  • 浏览: 299856 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SOA与工作流、ESB的关系

    博客分类:
  • SOA
阅读更多

看了http://www.iteye.com/topic/148856?page=5,因为严重反对楼主这样的把SOA和工作流关联起来的行为,忍不住写了这个贴。

从技术实现上看,我理解的SOA包括如下内容:
1)首先要有service的实现和封装。就是通过某个方式,用技术的方法把服务封装出来。(比较好的是 webservice+sca)
2)其次要有service的管理。可能是通过简单的表结构来做一个服务表,可能是用service registry来做一个注册中心,可能是ESB。
3)再其次要实现service的编排。这个可能是一个BPM产品来实现。

BPM产品和工作流的区别在哪里?这个涉及到SOA的本质。
请看http://hongsoft.iteye.com/blog/288992
(BA使用BPM工具,在一个集成的环境中来建模和部署可执行的业务流程)

楼主的工作流的技术和场景,严重违反了这个标准:
1)没有让BA参与进来
2)没有一个集成的环境 ,工具不能产生可执行的业务流程

 

我理解如果结合大家ESB方面的疑问,可以这样定位SOA三个阶段:

1.       应用级:大多数客户的状况,客户的预算是先实施一个应用。这级的目标是:SOBA应用按SOA的范式来调用外界的服务,而且SOBA应用内的服务可以很容易地融合到以后的SOA整体架构中。这个级别不需要ESB

2.       部门级:客户只对业务流程进行了局部研究,业务集成范围限于部门内(或者限于某个业务领域内)。这个级别需要一个服务管理库,但是还是不需要ESB(企业服务总线)。

3.       企业级:这个级别需要ESB和企业业务库。 

如果企业在有限的集成服务范围内,盲目地投资实现非常高级的SOA架构,将造成很大的成本负担,IT投资过大,需求不可控制,取得的业务优势会得不偿失。而根据未来要求,分步实施、稳步推进是SOA架构实施的正确路线。

分享到:
评论
21 楼 hongsoft 2008-12-11  
EOS6.0现在没有做BPEL的实现。

BPS6.1中将支持BPEL。

20 楼 fjlyxx 2008-12-10  
可以这样理解吗?EOS也是BPEL的一种实现。只是执行过程中参与的接口不一样。
19 楼 hongsoft 2008-12-10  
我对公司以前的版本了解也不多。
我进来就做 EOS6.0的架构师,做了两年,6.0与以前版本变化比较大,基本是重写的;现在做BPS6.1的架构师,做BPEL和B4P方面的东西。

我说的话并不代表公司观点,呵呵,只是纯技术交流。
18 楼 fjlyxx 2008-12-10  
你是普元的阿,听过你们公司EOS的培训。说实话你们用XML作为数据总线,把XML分为数据区域和控制区域确实是一个很明智的选择。这点我很认同,但是我觉得有点大才小用,如果把这个技术应用到ESB引擎中那么也许会更能发挥它本应该有的魅力。
我今天无心说EOS。有时候提供越多的功能,想囊括越多,反而会失去更多的作用空间。
17 楼 hongsoft 2008-12-10  
fjlyxx 写道
我觉得学习SOA如果单纯的看书是没有啥用的。在SOA中 你没想到的问题太多了,本来SOA就是一个模糊的概念,可以说是异步的又可以说是同步的,可以说是分布式的又可以说不是,SOA是啥?一句话,啥都不是,啥都是。当然你可以用你看到的定义去反驳我。

EOS做个工作流他自己说也是SOA,好像我们也没有办法反驳他。仁者见仁的事情。

不过话说回来,SOA的目标还是很明确的。协同工作,信息共享。就这两点而言如果我之做信息共享那么我完全可以把SOA做成ETL,如果我把业务组建(请注意这里的业务组建的定义是不通过网络就可以访问的功能模块)当成服务那么 我做个工作流也是SOA。

所有,工作流,ETL,SOA三种东西在功能上本来就很难说清楚。

但是,我个人不认为ETL和工作流是SOA平台。
我的感受是
第一,SOA一定要有协同工作的能力,当然这种协同工作的颗粒度不是像工作流一样。

第2,SOA的服务调用绝对不是像工作流引擎调用业务节点一样。(虽然你可以把这个业务节点发布成一个SOA服务)

如果把工作流的业务节点提高一个层次那么工作流也许就是一个SOA平台了。我是靠服务颗粒去判断的。

就这两点个人想法,交流下对SOA的认识。


公司现在有两个产品:一个是EOS,SOA中间件,编程模型采用 SCA/SDO;另外一个是BPS,BPM中间件,编程模型采用BPEL+B4P。
16 楼 hongsoft 2008-12-10  
fjlyxx 写道
我觉得学习SOA如果单纯的看书是没有啥用的。在SOA中 你没想到的问题太多了,本来SOA就是一个模糊的概念,可以说是异步的又可以说是同步的,可以说是分布式的又可以说不是,SOA是啥?一句话,啥都不是,啥都是。当然你可以用你看到的定义去反驳我。

EOS做个工作流他自己说也是SOA,好像我们也没有办法反驳他。仁者见仁的事情。

不过话说回来,SOA的目标还是很明确的。协同工作,信息共享。就这两点而言如果我之做信息共享那么我完全可以把SOA做成ETL,如果我把业务组建(请注意这里的业务组建的定义是不通过网络就可以访问的功能模块)当成服务那么 我做个工作流也是SOA。

所有,工作流,ETL,SOA三种东西在功能上本来就很难说清楚。

但是,我个人不认为ETL和工作流是SOA平台。
我的感受是
第一,SOA一定要有协同工作的能力,当然这种协同工作的颗粒度不是像工作流一样。

第2,SOA的服务调用绝对不是像工作流引擎调用业务节点一样。(虽然你可以把这个业务节点发布成一个SOA服务)

如果把工作流的业务节点提高一个层次那么工作流也许就是一个SOA平台了。我是靠服务颗粒去判断的。

就这两点个人想法,交流下对SOA的认识。


SOA是一种做架构的范式,这个范式的核心目标是做到业务敏捷,核心思路是通过服务的方式。
满足上面三个条件的,是SOA。
15 楼 hongsoft 2008-12-10  
fjlyxx 写道
学习SOA前我个人觉得不要现着急看技术方面的东西,先看看SOA能干什么。想想如果要你去做会碰见什么问题。思想最重要技术其次。 推荐先看世界是扁平的


呵呵,是的。
《世界是平的》我是06年看的,还写过 blog,呵呵。
14 楼 ronghao 2008-12-10  
如果大家一定要把SOA往IT实现上靠的话,那SOA就是在忽悠。
13 楼 fjlyxx 2008-12-10  
学习SOA前我个人觉得不要现着急看技术方面的东西,先看看SOA能干什么。想想如果要你去做会碰见什么问题。思想最重要技术其次。 推荐先看世界是扁平的
12 楼 fjlyxx 2008-12-10  
我觉得学习SOA如果单纯的看书是没有啥用的。在SOA中 你没想到的问题太多了,本来SOA就是一个模糊的概念,可以说是异步的又可以说是同步的,可以说是分布式的又可以说不是,SOA是啥?一句话,啥都不是,啥都是。当然你可以用你看到的定义去反驳我。

EOS做个工作流他自己说也是SOA,好像我们也没有办法反驳他。仁者见仁的事情。

不过话说回来,SOA的目标还是很明确的。协同工作,信息共享。就这两点而言如果我之做信息共享那么我完全可以把SOA做成ETL,如果我把业务组建(请注意这里的业务组建的定义是不通过网络就可以访问的功能模块)当成服务那么 我做个工作流也是SOA。

所有,工作流,ETL,SOA三种东西在功能上本来就很难说清楚。

但是,我个人不认为ETL和工作流是SOA平台。
我的感受是
第一,SOA一定要有协同工作的能力,当然这种协同工作的颗粒度不是像工作流一样。

第2,SOA的服务调用绝对不是像工作流引擎调用业务节点一样。(虽然你可以把这个业务节点发布成一个SOA服务)

如果把工作流的业务节点提高一个层次那么工作流也许就是一个SOA平台了。我是靠服务颗粒去判断的。

就这两点个人想法,交流下对SOA的认识。
11 楼 hongsoft 2008-12-10  
huidian 写道
hongsoft 写道

BA就是  业务分析人员的意思,也可指 业务分析专家。 我见过 国内很多公司 有这个职位的。 国外就更普遍。


能否加您联系方式,本人刚毕业,现在在一家以工作流为核心产品的公司工作,但似乎公司的研发核心人员大部分离职了,所以急切想找一位像您一样的前辈来指点迷津,万分感谢.
我QQ 14463141
  邮箱 shiw_learn@163.com
万分感谢!


呵呵,自己多学习吧。通过网络不好交流太多的东西的。

如果在上海可以通过聚会的形式沟通。
10 楼 hongsoft 2008-12-10  
对于目前很多企业来说,第一,第二,第三阶段这样并存的企业很多~~


是的,你说的这一点我很认同。


第2阶段并不是 点到点的模式,而是 多个 轻量级ESB 共同管理的方式。
呵呵,画个图比较好说清楚点,可惜我没有时间(现在在做BPEL和B4P的研发工作)。


也许我这样说可能更容易明白:
我们不需要 重量级ESB,只需要轻量级ESB。

多轻量级ESB共存;或者可能是  服务管理表 与 轻量级ESB共存 。 
9 楼 czx566 2008-12-10  
hongsoft 写道
回czx566,其实我认为 第2阶段是 正确使用ESB的前提:

服务总线其实分为两大类,一是ESB企业服务总线如IBM的产品;二是服务总线如Aqualogic Service Bus。一般的服务总线都有如数据转换、协议转换、消息路由等等通用功能,而ESB还多了负载均衡、安全策略、服务监控、团队开发支持等特性。

1) 应用级不需要服务总线(最好是没有ESB,否则带来项目复杂性)
2) 部门级(领域级)需要服务总线,但是不需要ESB (如果客户已经买了ESB,一定要用,也可以初步使用;如果没有买ESB,则不需要ESB,可以考虑买EOS的简单ESB实现版本)
3) 企业级: 需要ESB。但是这个级别的项目我们很难争取到,市场上也不一定存在。


我理解你说的部门级,也就是传统的EAI解决方案: 点到点解决模式~

这种点到点的模式 如果系统比较少还好,如果多了,那么头就大了。

所以在我们有ESB这种资源的前提下,我觉得点到点的模式可以不考虑了~~

所以我说第二阶段感觉没有必要。

    而目前的情况来说,据我个人所知,如果一旦一个企业决定上SOA,一定先上ESB~~~
让ESB先去兼容原有的应用系统,如果领导一看效果不错,才有可能将后续的系统开发加上必须符合SOA架构的系统要求,所以对于目前很多企业来说,第一,第二,第三阶段这样并存的企业很多~~

8 楼 hongsoft 2008-12-10  
“现实中,企业往往先从第3级开始的,只有当你的esb并入了大多数系统后,企业才有可能在后续新开发的系统加上第一级的要求! ”

我明白你说的现状,它的产生有两个原因:
1)  IBM等公司 已经 卖了太多的ESB(一般是通过SOA来卖的),企业感觉不用也是浪费
2) 新开发的系统,应该天然的 支持 对外暴露 服务的接口,不应该留给以后的系统集成。    (这个就是我的blog说的 开发即集成的概念之一)


当然,在你说的情况之下(企业已经有ESB了),那当然也可以把它用上。
只是我个人认为 ESB实在不是个 好东西,而多个服务总线才是我们的需要。

7 楼 huidian 2008-12-10  
hongsoft 写道

BA就是  业务分析人员的意思,也可指 业务分析专家。 我见过 国内很多公司 有这个职位的。 国外就更普遍。


能否加您联系方式,本人刚毕业,现在在一家以工作流为核心产品的公司工作,但似乎公司的研发核心人员大部分离职了,所以急切想找一位像您一样的前辈来指点迷津,万分感谢.
我QQ 14463141
  邮箱 shiw_learn@163.com
万分感谢!
6 楼 hongsoft 2008-12-10  
呵呵。上面是  我个人 对 EOS  对 服务总线的归纳,并不代表 公司的观点。

我想大家的项目,最大也就是 对企业某个领域(比如5个CRM系统)的 业务的 管理,
这样的情况下,对服务的调用 只需要 调用到   服务总线中的服务,并不需要ESB。

如果CRM要调用 计费系统的 服务怎么办?
那就需要用  服务总线,把  计费领域的  服务管理起来,对外(CRM)提供调用。


注意:这里是  多个服务总线,但是并不是ESB。


5 楼 hongsoft 2008-12-10  
回czx566,其实我认为 第2阶段是 正确使用ESB的前提:

服务总线其实分为两大类,一是ESB企业服务总线如IBM的产品;二是服务总线如Aqualogic Service Bus。一般的服务总线都有如数据转换、协议转换、消息路由等等通用功能,而ESB还多了负载均衡、安全策略、服务监控、团队开发支持等特性。

1) 应用级不需要服务总线(最好是没有ESB,否则带来项目复杂性)
2) 部门级(领域级)需要服务总线,但是不需要ESB (如果客户已经买了ESB,一定要用,也可以初步使用;如果没有买ESB,则不需要ESB,可以考虑买EOS的简单ESB实现版本)
3) 企业级: 需要ESB。但是这个级别的项目我们很难争取到,市场上也不一定存在。
4 楼 hongsoft 2008-12-10  
BA就是  业务分析人员的意思,也可指 业务分析专家。

我见过 国内很多公司 有这个职位的。

国外就更普遍。
3 楼 elam 2008-12-09  
czx566 写道
对了,问一句,BA是个啥

Busyness Analyser
?
2 楼 czx566 2008-12-09  
对了,问一句,BA是个啥

相关推荐

    WebService&SOA&ESB入门介绍

    - **BPEL**(Business Process Execution Language)是一种用于描述业务流程的工作流语言。 - **Grid**指的是网格计算,通过整合大量分布式资源(如计算能力、存储)以解决大规模计算问题。 理解并掌握WebService、...

    oracle-soa工作流

    ### Oracle SOA 工作流相关知识点解析 #### 一、背景与意义 在当今商业环境中,企业面临着前所未有的挑战:市场变化迅速、竞争日益激烈、客户需求不断增长。为了适应这种变化并保持竞争力,企业必须提高其信息技术...

    TIBCO-ESB-SOA介绍

    在实际应用中,TIBCO ESB与BusinessWorks通常结合使用,ESB负责底层的数据和系统集成,BusinessWorks则处理业务逻辑和流程控制。这样的组合使得企业能够快速构建出适应性强、可扩展性好的IT架构。 **案例分析** ...

    ibm wmb wsrr soa esb 常见问题解答及JavaAPI

    开发者可以利用图形化的工作流设计工具——Integration Developer来构建和调试消息流。 WebSphere Service Registry and Repository (WSRR)是IBM的SOA治理工具,主要用于存储、管理和发现服务。它提供了对服务元...

    mule 详细介绍 (soa esb)

    通过本文的阐述,我们不仅了解了Mule ESB与SOA的基本概念,还深入探讨了它们的工作原理、优势以及实际应用场景。对于IT行业的从业者而言,掌握这些知识点将有助于提升项目实施的效率和质量,从而在竞争激烈的市场中...

    企业服务总线 ESB 的介绍

    这些产品可能还包括工作流管理、安全控制和监控工具,以确保服务质量和系统的稳定性。IBM的SOA参考架构展示了ESB如何在整个企业架构中起到承上启下的作用,连接各种服务提供者和消费者,促进数据和业务流程的流动。 ...

    几种ESB(企业服务总线)架构介绍.pdf

    你可以把它嵌入到你的应用程序框架中,例如嵌入到Spring容器里面,或者嵌入到工作流系统中。它的作用是对企业里的SOA服务的调用提供一个框架和简便的方法。 大规模分布式的企业应用需要相对简单而实用的中间件技术...

    ESB主要产品比较.pdf

    7. **监控与管理**:提供工具和服务来监控、管理和优化ESB上的服务流。 ESB的关键利益包括: 1. **减少集成成本**:通过标准化接口和消息处理,降低了不同应用之间的集成复杂度和成本。 2. **提高灵活性**:ESB...

    ESB企业服务总线简介(1)

    ESB的主要用处在于简化企业内部服务的调用,它不是一个独立的应用程序框架或整体解决方案,而是作为一个通信模块,嵌入到现有的应用程序框架或工作流系统中,为SOA服务调用提供便利。 ESB的应用特征体现在其能够在...

    JBoss ESB 开发指南

    JBoss ESB的设计理念是基于SOA(面向服务架构),使得不同技术栈的应用程序可以无缝地交互和协同工作。 ### 书籍内容概述 这本书包含了对JBoss ESB 4.8版本的深入解析,覆盖了从基础知识到高级概念的各个方面。...

    ESB 需求分析 项目设计 架构设计

    - **数据接口**:设计ESB与其他系统的接口,包括数据格式和传输协议。 - **适配器设计**:针对特定系统设计相应的适配器。 ##### 6. 容错与监控 - **容错机制**:设计ESB的容错机制,包括重试逻辑和异常处理。 - **...

    SOA概念原理培训.pdf

    常见的BPM技术包括流程引擎、工作流管理系统和业务规则引擎等。 SOA治理是指在SOA实施中,为了保证架构的可靠性和一致性而采取的一系列管理和控制措施。治理涉及到政策的制定、执行以及监控服务的整个生命周期。...

    JBossESB学习笔记.rar_Jboss_ESB_esb和aop

    - 高级特性,如工作流集成、事件驱动架构等 通过深入学习这些笔记,开发者将能够熟练掌握JBoss ESB的使用,提升在企业级应用集成中的技能水平。同时,理解ESB和AOP的结合,可以帮助开发者更好地设计和实现分布式...

    IBM的ESB 安装指南

    通过这个安装指南,初学者不仅可以了解IBM ESB的基本安装流程,还能学习到中间件集成、服务导向架构(SOA)和企业服务总线的核心概念。实践中,掌握这些知识将有助于构建高效、可靠的企业级服务集成解决方案。

    ESB解决方案-mule分享.pdf

    ESB产品则是JBI规范的具体实现,提供了集成不同系统和服务的能力,它不是独立的应用程序,而是作为通信模块嵌入到其他框架或系统中,如Spring容器或工作流系统。 【ESB的主要特性】包括: 1. **跨平台**:ESB通常与...

    IBM ESB 介绍

    #### 四、WebSphere ESB 与 WebSphere Message Broker 的关系 - **何时单独使用 WebSphere ESB**:当需要处理简单的服务集成时,例如仅涉及到数据格式转换或协议转换时,可以考虑单独使用 WebSphere ESB。 - **何时...

    SOA—Project

    5. **服务组合与编排**:根据业务需求,将多个服务组合成复合服务或工作流。 #### SOA与ESB(企业服务总线) **企业服务总线(ESB)**是SOA架构中的关键组件,它提供了一种标准的方式来连接不同的服务,实现消息的...

    SOA 实用案例研究

    服务编排是这个过程的关键部分,它可以是基于规则的,也可以是基于工作流的,以创建动态、灵活的业务逻辑。 **ESB(Enterprise Service Bus,企业服务总线)**:作为SOA的核心组件,ESB提供了服务之间的连接,实现...

    Oracle ESB

    - 工作流引擎可以帮助自动化业务流程的执行。 **服务重用**: - 鼓励通过服务重用来减少重复编码,提高代码质量和维护效率。 - 通过服务仓库中的搜索功能,可以快速找到可重用的服务组件。 **SOA资产**: - SOA资产...

    MF00104-大型工作流.zip

    3. **集成性**:大型工作流需要与企业的其他系统(如ERP、CRM等)紧密集成,实现数据的无缝传递。 4. **可扩展性**:随着业务的发展,工作流系统应具备良好的可扩展性,以应对不断增加的新任务和新功能。 5. **审计...

Global site tag (gtag.js) - Google Analytics