写点什么

你的架构应该关注 SOA,还是 BPM?

  • 2008-05-19
  • 本文字数:2252 字

    阅读完需:约 7 分钟

SOA 在时髦术语标签云里面风光无限的同时,BPM 的名气正变得越来越响。当组织逐渐明白想从 IT 投资中获得收益需要驯服组织间各种各样的流程时,BPM 在 IT 圈内圈外正得到重视,认同和关注。对你的构架来说,哪一个更重要呢?以 BPM 作为 SOA 平台,又或是将 BPM 作为指导实现 SOA 的基本理念,这两个概念之间的联系正变得越来越紧密。

BEA 的 Dain Hansen 最近发表了“ SOA 整合的成功蓝图”,对如何在组织中实施 SOA 给出了详细的指导。在讨论过程中,Hansen 指出了 BPM-SOA 整合的重要性。

我们在谈 IT 和 ERP 系统的整合的时候,也需考虑它们对业务分析师或业务部门(LOB)的影响,因为是他们真正使用这些数据和服务来完成日常业务。这两个往往看似矛盾的元素需要通力协作才能成为一个完整的整合解决方案。当 SOA 和 BPM 都表现良好时,我们才能看到巨大的收益。此时,不仅能使 IT 和业务部门中各角色协调一致,而且还能以两个阵营都能成功管理的最优方式实现流程……一旦在 SOA 整合过程中实现了自动化的业务流程模型,业务分析师就可通过集成的业务活动监控功能获得运行时反馈,触发一个优化过程。这让业务使用者能实时观察到哪些流程需要改进。一旦识别了改进环节,业务分析师就能同时更新模型和业务,此时开发周期又进入了下一个循环。这种迭代式业务——整合循环实现了真正的业务转型与优化。

为了达到这样的收益,SOA 和 BPM 需要以这样的方式来整合:组织里的用户需要有公共统一的工具来共享元数据、治理和管理信息,并最终优化业务流程与流程翻译方法(将它们翻译成后端整合)之间的互操作性。

Quinton Wall,同样来自 BEA,最近谈到了将BPM 和SOA 相结合以最大化业务的机动性。Wall 认为组织可以在SOA 基础上综合利用BPM 工具来达到IT 和业务的一致性:“技巧在于使业务端的改变以一种受管制的方式进行,并削弱它对IT 的依赖性。” 这意味着,BPM 能够让业务部门的执行者充分享用服务和服务组合好处的同时,减少了IT 的介入。BEA 的建议是从“SOA 优先”的立场所作出的,并假设组织已一定程度的面向服务化。其它几位则是以业务流程为中心的角度来考虑BPM 和SOA 的联姻。

Rich Seeley 讲到了特拉华电力公司的 SOA 实施以及 IT 副总裁 Gary Cripps 是如何让它成功的。Cripps 表示,业务流程分解方法在这一过程中发挥了巨大作用。

“我一开始就将所有的流程进行了分解”Cripps 解释到,“我的发现是,参与这样级别的一个 SOA 项目,我们花了百分之五十五的精力在定义流程上。百分之五十五,这令我很吃惊。百分之二十的时间是用于编写代码的。剩下的百分之二十五花在了测试和实施上。”这对那些考虑 SOA 的中小企业来说是个好消息,Cripps 说道。业务流程的界定和建模可以由包括部门涉众在内的核心团队来完成,百分之二十的编码工作则可以外包。

在内部,SOA 团队成员转变了他们思考应用的模式,开始按照业务流程来思考,Cripps 说。“当我们转为面向服务时,就我的团队成员而言,这真正地提升了他们的知识。因为理解一个跨多个部门的特定事务的业务流程和业务规则需要花相当大的努力。”他讲道。

Seeley 同时指出,在转向 SOA 的进程中,业务分析师的角色发生改变了。引用自iTKO 公司首席科学家John Michelsen 的说法,Seeley 写道,在SOA 实施中受影响最大的是业务分析师需求分析的职责,而不是IT 部门开发组件的职责。 > “我认为说编码人员个体受影响最小是公平的。因为他或她所做的不外乎拿到需求,构建组件,测试组件,再将组件插入到更大的系统”他说到,“这和五年前所做的事没任何区别。所以,具有讽刺意味的是,开发人员也许成了受SOA 影响最小的人。”

在这两个例子中,Seeley 都引出了在建设和实施SOA 时业务流程管理和分析的重要性。Dennis Byron 指出 BPM 现已名副其实地属于软件堆栈的顶层。Byron 的观点是,BPM 已经不再是集成层的一部分——这是从 IT 立场出发的定位——而是上升到了整个软件堆栈的顶级。从业务角度来看整个软件堆栈,IT 可以“将 BPM 视为一种建立在面向服务架构(SOA)方法学基础之上的‘新型开发范式’”。

为了找到“BPM 还是 SOA?”这个问题的答案,Neil Macehiter 和 Neil Ward-Dutton 阐述了在现代组织中这两个概念分别扮演了什么样的角色。抛开了“BPM 是自顶向下,业务驱动的创新;SOA 是自底向上,技术驱动的创新”这种传统观念,Macehiter 和 Ward-Dutton 阐述了“‘面向服务同时面向流程;自顶向下同时自底向上’的立场是如何以一种更全面的视角来消除业务与技术架构的分歧。”紧接着这些陈述 Macehiter 和 Ward-Dutton展示了流程和服务的概念是如何通过‘输出(outcome)’统一起来的:

输出(outcome)就是预期到的结果。一个最高层输出(outcome)可以是一个组织的核心价值,财务表现等等这样的东西。在这一层次,输出(outcome)可能和使命宣言直接联系。 再低一点的层次输出(outcome)可以是一些操作结果——比如“产品已经交付”。服务是对达到输出(outcome)的承诺。流程是完成输出(outcome)的手段。

他们俩这样总结了对 BPM/SOA 的观点:“事实是,输出(outcome)是硬道理,服务和流程是达成目标的一体两面。”查看英文原文: Should your architecture focus on SOA or BPM?


译者简介:黄璜,2007 毕业于重庆邮电大学计算机学院。现从事 Java Web 开发,供职于成都 ISSC, 熟悉 Struts,Spring,ibatis,关注语义网,SOA,云计算等领域。个人主页: http://www.chinacomputing.org , 联系方式 huangh@cn.ibm.com 。参与 InfoQ 中文站内容建设,请邮件至 china-editorial@infoq.com

2008-05-19 20:401939
用户头像

发布了 133 篇内容, 共 42.1 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

不懂源码?来看看阿里P8亲自手码的Spring源码解析整套笔记,高薪offer唾手可得!

比伯

Java 编程 架构 面试 计算机

「面试必备」最新整理出的腾讯C++后台开发面试笔记

linux大本营

c++ Linux 后台开发 架构师

接口测试如何在json中引用mock变量

测试人生路

json 接口测试 Mock

Mac下Docker Desktop配置阿里云镜像加速器

jiangling500

Docker 阿里云镜像加速器

产业新基建,撬动数字经济发展新机遇

京东科技开发者

人工智能 新基建 京东

Canal 组件简介与 vivo 帐号实践

vivo互联网技术

数据库 分布式 数据存储

Mysql数据备份与恢复

张攀钦

MySQL

Spring Boot 2.4.0正式发布,全新的配置文件加载机制(不向下兼容)

YourBatman

云原生 Spring Boot 新特性

架构师第一期作业(第 11 周)

Cheer

作业

一点就透的二分查找算法

比伯

Java 编程 程序员 面试 计算机

华为云MVP高浩:打破AI开发瓶颈,解决数据、算法、算力三大难题

华为云开发者联盟

人工智能 数据 华为云

CAP理论

DL

薇娅携手中国航天基金会与我们的太空 带你“益起探月,共舞九天“

排查指南 | mPaaS 小程序提示“网络不给力”时该如何排查?

蚂蚁集团移动开发平台 mPaaS

小程序 网络 小程序生态 mPaaS

什么是物联网?常见IoT 物联网协议最全讲解

华章IT

物联网 IoT

使用 Jira Service Management 管理资产,您需要知道的5件事

Atlassian

数字化转型 Atlassian Jira ITSM ITIL

架构师训练营第十周作业

文智

极客大学架构师训练营

C++语言中std::array的神奇用法总结,你需要知道!

华为云开发者联盟

容器 数组 函数

“摸爬滚打”多年,从月薪3K到30Kjava大神,我是怎么蜕变的?

比伯

Java 编程 架构 面试 计算机

第十周学习总结

饭桶

Linux 笔记(三): 软件安装

Leo

Linux 学习 大前端

Kubernetes初体验--用Kubernetes部署一个Web服务

网管

Kubernetes k8s Web 服务 Go 语言

《我想进大厂》之Spring夺命连环10问

艾小仙

Java spring 程序员 面试 大厂

一线大厂欺负程序员?京东单方面辞退38岁P7员工三次败诉

Java架构师迁哥

最近我发现瑞幸在这样做私域运营

Linkflow

营销数字化 客户数据平台 CDP 私域运营

第十周课后练习

饭桶

源码 | 浅谈Webpack原理,以及loader和plugin实现。

梁龙先森

大前端 webpack

揭秘11.11监控排障利器 京东高稳定日志服务深度解析

京东科技开发者

云计算 DevOps 日志监控

深度剖析,为何C语言在开发领域的地位如此稳固

Philips

Python .net rust C语言 Go 语言

什么是低代码(Low-Code)?

阿里巴巴云原生

程序员 云原生 代码

使用resilio实现多集群的k8s pod数据双向非实时同步

东风微鸣

Kubernetes 探索与实践 openshift

你的架构应该关注SOA,还是BPM?_SOA_Steven Robbins_InfoQ精选文章