AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

将企业视为一个事件网络

  • 2009-04-08
  • 本文字数:1314 字

    阅读完需:约 4 分钟

Richard Veryard 在他新的一篇博文里,讨论了 SOA,BPM 和事件之间的关系。Richard 写到:

从 SOA 的早期,我们就提到将企业理解为一个服务的网络,但这显然不是唯一可能的立场。我们能不能把企业理解为一个事件的网络呢?

Ramesh Loganathan 也和他有着同样的观点,描述了他最近一次的探求 - 一个咨询公司构建一个治理与风险防范 (GRC) 解决方案的项目。从架构的角度上,该实现是基于如下的模式:

  • 一个业务事件作为进行中的业务处理的一部分而发生
  • 该事件包括了相关的业务数据
  • 一系列的 GRC 检测与规则被实施
  • 任何的违反都会被记录并且发会出警示

这一咨询公司更进了一步,将整个业务领域建模为一系列关键业务事件的集合,而这对于该领域的任何人都是能充分理解的。每个业务事件包括了一个对于相关数据的清晰定义。

目前为止,我们见证了将企业展现为一系列调用服务集合的业务流程的建模方式。在上面的快速视图中,企业是由一系列的业务事件来建模的…前者是定义业务流(流程)来构成企业业务处理的一个视图。而后者更像是交付一个企业实际情况的快照-作为“发生”在企业中的业务事件。两者都有着明确的目的并且清楚的对牵涉的数据进行了建模,但前者的方法,流动的是数据。而后者的方案中,所“产生”的数据会提交一个业务活动。

对于 Ramesh 的文章,Richard 这样评论到:

从策略的层次上,我们有必要理解外部可能事件与内部可能事件相互的关系。每个企业都有以特定方式对特定的外部事件类型进行响应的能力。要使得企业更灵活意味着使得企业能对更广阔的外部事件作出更为合适的响应,而不用增加不必要的复杂性,从系统思维的角度来说这叫做必要多样性。

所以如果我们将企业思考为一个事件的网络,这给了我们直接的方式去考虑战略性业务改进。

这样的讨论已屡见不鲜。比如,回顾 2006 年, Jack van Hoof 就写过

…SOA 的这一同步的指挥与控制天性是一种应用组件紧耦合的方式…从技术的领域 SOA 或许是松耦合的,利用了共通的 web 服务技术,但在功能领域肯定不是这样,在这一领域 SOA 与‘调用’外部 (可重用的) 服务与消除数据冗余联系起来…与 SOA 相对的是,EDA 提供了一种松耦合的方式。 EDA 不是一种同步的指挥与控制的模式类型,相反却是:一种异步的发布与订阅模式类型。发布者完全不知道订阅者,反之亦然;组件仅只共享消息的语义,从而达到了松耦合。

出于一些原因,人们仍然认为 SOA/BPM 与 EDA 是两种相对立的方案。这种误解很大程度上是由于 Web 服务传统的 RPC 结构而造成的。随着 SOA 实现的进步以及不同消息交换模式的显现,包括单向消息,SOA 与 EDA 之间的差异开始逐渐模糊。用 Bobby Wolf 的话说

…任何方式,你都是在实现服务,问题在于服务被调用的方式。它们是以一种非常直接的 SOA 方式由消费者直接来调用提供者呢?还是一种更为抽象和间接的风格,由事件促发处理器去调用服务?

事件和业务流程都是企业业务模型的重要部分。一个优化的 SOA 实现可以被定义为一系列的企业业务流程来编配服务的执行。这些流程可以由其它流程直接调用或者响应内部 / 外部的企业事件。流程同样会发出事件,可用于调用其它的企业流程或者由业务活动监控器来评测企业运转的效能。

查看英文原文: The Enterprise as a Network of Events

2009-04-08 04:522055
用户头像

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

关注

评论

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

Java集合容器面试题(2020最新版)

Java 程序员 后端

Java面试题大全(持续更新中)

Java 程序员 后端

Java高并发编程课后总结

Java 程序员 后端

Kubernetes任务调用Job与CronJob及源码分析

Java 程序员 后端

Java编程配置思路详解(1)

Java 程序员 后端

Java虚拟机内存结构及编码实战

Java 程序员 后端

Java面试之EJB & Spring

Java 程序员 后端

keepalived实现双机热备(1)

Java 程序员 后端

Java高级特性之多线程

Java 程序员 后端

Jsoup解析html

Java 程序员 后端

JSP“三大请求传参方式”及“中文乱码问题解决方案”详解

Java 程序员 后端

k8s常见问题大收集

Java 程序员 后端

Kubernetes 常用命令大全

Java 程序员 后端

Java面试宝典(2020版)

Java 程序员 后端

Java面试通关要点汇总集

Java 程序员 后端

keepalived实现双机热备

Java 程序员 后端

Java进阶:什么是TCP-IP?如何运用!(1)

Java 程序员 后端

Java面试题超详细整理《JVM篇》(1)

Java 程序员 后端

Java面试题超详细整理《JVM篇》

Java 程序员 后端

JVM及GC机制

Java 程序员 后端

Java详解:如何实现一个-redis-缓存服务

Java 程序员 后端

Java黄金五年——1~5年一个Java程序员从入行到大牛的晋升之路

Java 程序员 后端

JDK8-Object源码

Java 程序员 后端

Jenkins部署springboot项目

Java 程序员 后端

JetBrains 又出了一款新神器,一套代码适应多端!

Java 程序员 后端

Java编程配置思路详解

Java 程序员 后端

Java进阶:什么是TCP-IP?如何运用!

Java 程序员 后端

JAVA面试核心教程|Java面试基础知识点总结

Java 程序员 后端

JVM之调优及常见场景分析

Java 程序员 后端

K8S环境的Jenkin性能问题处理续篇(任务Pod设置)

Java 程序员 后端

Java面试中最常问的JVM问题大全,附答案

Java 程序员 后端

将企业视为一个事件网络_SOA_Boris Lublinsky_InfoQ精选文章