写点什么

拉近 SOA 和 BPM 的距离

  • 2009-10-10
  • 本文字数:1323 字

    阅读完需:约 4 分钟

在其最新的博文——隔离你的 SOA 和 BPM 项目中,JP Morgenthal 认为:

……将 SOA 和 BPM 搅和到一起充满了问题和失败。每个项目应该单独进行,而且在每个项目的确定目标中不要将对方列为产出之一。如果作为 SOA 所提供的合理化的一部分,碰巧有那么一些暴露的服务可以简化某条特定的流程,那绝对是一个大灌篮。然而,SOA 和 BPM 每个有自己的成功标准以及障碍。把它们弄到一起,嗯,“沸腾的海洋”一词浮现到我的脑海中。

按照 JP 的说法,尽管:

在历史上,SOA 和 BPM 几乎同时变得流行起来。SOA,主要由技术从业者领导,通过技术响应了 BPM 从业者对一个捕获和实现新设计、高效的跨组织业务流程框架的需要。

他的观点遭到了 Zapthink 的 Jason Bloomberg 的强烈反驳,Jason Bloomberg 提倡一种以流程为中心的 SOA 观点,其要旨是构建松耦合的业务服务将支撑实现业务流程的元数据驱动的组合。这种方法的基础是流程同构模式(Process Isomorphism pattern),它可以帮助组织将它们的 BPM 和 SOA 成果结合在一起,提高它们的 SOA 项目和核心业务驱动之间的对齐。

……如果你建模一个业务流程,并以一个单独的方式建模实现这个流程的服务组合,结果这两个模型有相同的结构,那么它们就是同构的。

Jason 解释说,流程分解可以被用作服务定义的一个基础,由此可以提供业务和 IT 努力之间的公共语言,但只有在 SOA 设计已经正确完成时才可以:

……流程子任务和支撑服务之间是一一对应的决不是件肯定的事,实际上,很多组织并没有按照这种对应关系设计它们的组合。很多时候,问题是 SOA 努力过于自底向上了,其中架构师基于现有能力指定服务。这种自底向上的方法通常导致服务并不匹配流程需求。同样,BPM 努力通常过于自顶向下了,其中它们试图优化流程,但又没有考虑合适程度的细节供服务去实现流程步骤。只有采用迭代的方式,在每个迭代中结合自顶向下和自底向上的设计,组织才有可能获得流程同构。

在 Jason 看来,流程同构的本质优点是能够使用流程来表示服务组合,以及使用服务组合表示流程。

这种信息等价给我们提供了很多好处。例如,假如流程步骤直接对应服务,那么服务重用就要比步骤和服务之间的对应关系不清晰时更容易实现。服务重用可以被放在流程重叠的上下文中去讨论。如果两个流程共享一个子任务,那么实现这些流程的 SOBA[Service-Oriented Business Applications,面向服务的业务应用] 将共享这个支撑服务。此外,这个组合逻辑的元数据表示,如一个 BPEL 文件,将表示这个流程逻辑本身。要是没有流程同构,BPM 团队得出的流程逻辑将不会直接对应于用于支撑组合的 BPEL 逻辑。这种脱节可以直接导致 IT 能力和业务需求的不对齐,同时限制了业务的敏捷性,因为流程和支撑组合之间缺乏清晰的关系会导致二者之间无意识的紧耦合。

可组合性是业务服务的主要特征。正是可组合性允许由相同的服务集合构建不同的业务解决方案。在构建可组合(业务对齐的服务)的过程中,一种最常见的方法就是以流程分解为基础去定义它们。另一方面,业务流程是将单个服务组合成业务解决方案的流行方法之一。由 Jason Bloomberg 提出的流程同构模式是形式化服务和流程之间对齐的重要工具,同时也是改善两者的重要工具。

查看英文原文: Bringing SOA and BPM Closer Together

2009-10-10 09:441268
用户头像

发布了 255 篇内容, 共 52.4 次阅读, 收获喜欢 8 次。

关注

评论

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

前端面试实录HTML篇

控心つcrazy

html 面试 前端 HTML5, CSS3

浅谈 Spring 如何解决 Bean 的循环依赖问题

做梦都在改BUG

Java spring 循环依赖

涨薪跳板! 2023阿里突击版Java面试宝典

程序知音

Java 编程语言 java面试 java架构 后端技术

5.5G,运营商能接受吗?

脑极体

5.5G

一路披荆斩棘腾讯6面面经(已拿offer)大厂远没想象中的难

小小怪下士

Java 程序员 面试 后端

真的香!腾讯SpringBoot高阶笔记,限时开源48小时

程序知音

Java 微服务 编程语言 springboot java架构

Python数据分析库介绍及引入惯例

timerring

Python pandas

阿里大佬力荐K8s项目实战笔记!图文并茂带你深度解析Kubernetes

做梦都在改BUG

Java Kubernetes k8s

深度学习基础入门篇[一]:神经元简介、单层多层感知机、距离计算方法式、相似度函数

汀丶

人工智能 机器学习 深度学习 多层感知机

GitHub标星35k+微服务深度原理实践进阶PDF,竟让阿里换下了Dubbo

做梦都在改BUG

Java 架构 面试 微服务

为 NGINX 配置免费的 Let’s Encrypt SSL/TLS 证书

NGINX开源社区

月内狂飙 50%的 ZBC ,连续登顶Solana 链交易量排行榜

威廉META

创业公司如何不沦为OpenAI“死侍军团”:训练小众数据,服务特定用户

B Impact

MMMBSC6.0互助智能合约模式系统开发

l8l259l3365

Service进阶

向阳逐梦

service intentservice 轮询

卓越工程之开发过程管理

agnostic

卓越工程

设计模式之美--经常被用错的KISS、YAGNI原则

GalaxyCreater

设计模式

【算法数据结构专题】「延时队列算法」史上手把手教你针对层级时间轮(TimingWheel)实现延时队列的开发实战落地(上)

洛神灬殇

4月月更 时间轮(TimeWheel) 算法指南 技术调整

火了!北大学霸爆肝3个月的算法小抄完整笔记,GitHub疯狂转发

做梦都在改BUG

Java 数据结构 算法

负载均衡算法的实现

王玉川

c++ 负载均衡 高可用 高并发 一致性哈希

OneCode :如何构建部署低代码引擎工程

高宏数智低代码

细节拉满,80 张图带你一步一步推演 slab 内存池的设计与实现

bin的技术小屋

内存管理 Linux Kenel 内核 内存池

一个神奇的需求:doc批量转docx,1行Python代码实现

兆锋

Python word 自动化办公

Django笔记一之运行系统、创建视图并访问

Hunter熊

django

字节资深架构师用7大部分13章节,彻底讲透SpringBoot生态体系

做梦都在改BUG

Java spring 微服务 Spring Boot 框架

从0为你讲解,什么是服务降级?如何实现服务降级?

做梦都在改BUG

阿里CTO最新分享神仙级“多线程手册”全套笔记,涵盖了多线程相关所有知识点

开心学Java

Java 线程 多线程 阿里

不敲一行代码,用ChatGPT开发App

擦机鼻涕

移动开发 ChatGPT

业务防资损,质量保障的第一要务!

老张

业务价值 交付质量 防资损

熬夜肝完! 阿里P8的Java进阶知识典藏版,我从18K飙到30K

程序知音

Java 编程语言 java面试 java架构 Java面试题

阿里内部最新发布的并发图册+JDK源码速成笔记,终于解脱束缚了

开心学Java

Java jdk 高并发

拉近SOA和BPM的距离_SOA_Boris Lublinsky_InfoQ精选文章