写点什么

介绍:业务实体和业务实体定义语言

  • 2010-05-17
  • 本文字数:2387 字

    阅读完需:约 8 分钟

在新发布的文章《Data4BPM》中,IBM 的 Prabir Nandi、Dieter König、Simon Moser、Richard Hull、 Vlad Klicnik、 Shane Claussen、 Matthias Kloppmann 以及 John Vergo 引入了业务实体的概念,它是展现数据的业务视图的一种方法。 他们提出了两种新标准,一种是业务实体定义语言(BEDL),另一种是 BPEL4Data ,它们是针对带有业务实体的过程的整体设计和执行的标准。

据作者们所说:

在大多数业务过程管理工具套件中,数据多会被认为是后来添加的东西。 活动和它们的流程才是主要的抽象,而过程所操作的数据本质上是隐藏在过程变量中的。 数据的表现和聚合是在过程定义之外处理的,并通过一般的服务调用来实现。 这种只重视过程的方法忽略了业务操作分析中重要的数据视图,通常这会隐藏操作的关键因素,并导致在解决方案的生命周期中一直要进行昂贵的重构工作。

在文章中,他们推荐将数据实体作为过程设计中的“一等公民”,并且引入了业务实体:

… 它是关键的与业务相关的动态概念对象,当它们在企业的操作中传递时,就会被创建、发展,并且(一般会)归档。 在业务实体中,既包括针对数据的信息模型,这些数据是与处于生命周期中的业务对象相关的,还包括一个生命周期模型,它描述了在这些对象上启动和执行任务可能的方式和时间点。

文章提出了业务实体定义语言(BEDL),它会定义 BEDL 元模型和语法,并且还讨论了能够支持 BEDL 规范的运行时架构。 它还概述了 BPEL4Data——这是扩展 BPEL 标准的一种方法,这样就可以支持带有 BEDL 组件的明确的互操作。

文中提出 BEDL 是建立在业务实体(BE)概念之上的,而业务实体拥有四种主要的组件: 信息模型、生命周期模型、访问策略以及通知。 BE 类型的信息模型被指定为一组属性 / 值对,其中的 XML 模式会与每个属性相关联,它会决定相关值的结构。 并非所有属性都需要在 BE 中出现。 BE 的生命周期模型被指定为一种有穷状态机。 生命周期规范本身既不会提供可能会在指定的 BE 实例处于特定状态的时候执行的活动的相关细节,也不提供可能作为将 BE 实例从一种状态转换为另一种时执行的活动。 我们通常会用 BPEL 来说明它们,而 BPEL 是用来补充说明 BE 的定义的。 BE 访问策略关注两个方面: 针对修改 BE 的信息模型(或者该模型的一部分)的 CRUD 定义策略;针对生命周期模型转换的执行、定义策略。 BE 规范的最后部分是一些通知,它定义了可能与外部组织——例如其他过程——有关的 BE 活动(变化)。

支持 BEDL 的软件组件提供了一个接口,它使得外部组件能够触发下列功能:

  • 请求 BE 类型的元数据——这是一个请求接口,允许获取它所支持的 BE 类型的模式。
  • 访问业务实体实例的数据——这是一个 CRUD 接口,允许对 BE 的属性进行操作。 这个接口是 CRUD 权限的主体。
  • 在 BE 实例上的查询——这是一个查询接口,允许获取所有满足查询的 BE 实例的引用。
  • BE 的执行状态转换——这是一个控制接口,命令 BE 转移到不同的状态。 这个接口还包含了对 BE 实例的创建。 状态转换会受到 BE 生命周期和执行权限的影响。
  • 加锁 / 解锁 BE 实例(的一部分)——这是支持对 BE 实例的并发控制的接口。
  • 订阅 BE 实例类的数据和状态改变——这是一个接口,使我们可以订阅 BE 的数据和状态改变的通知。 这个接口会受 CRUD 权限的影响,同时会试图读取 BE 的变化。

文中还提供了一个实例,它是关于对 Courier Shipment 的 BE 类型的设计。

文章的作者设想了一个特定的 BE 运行时,它会负责管理与多个 BE 类型相关联的实例。 他们讨论了这样的运行时的两种形式:

  • 在“绿色区域”案例中,BE 运行时会管理位于特定的数据存储中的实际的 BE 实例数据(既包含属性值,也包含实例状态)——BE 内容存储。 这种情况下的 BE 运行时负责执行数据访问策略,并且向 BE 订阅者发送通知。
  • 在“棕色区域”案例中,他们假设大多数 BE 数据已经存储在遗留的应用程序中。 在这种情况下,BE 运行时不会复制数据,而是可以增加持久的存储,其中会保存可以被用来链接和关联数据的 BE 信息视图和数据的遗留应用程序视图。

尽管 BE 运行时为操作 BE 数据和状态提供了支持,但是它并没有为定义状态转换的执行提供任何支持。为了做到这一点,它会依赖外部过程——例如:基于 BPEL/BPMN 的过程、两层的 Web 应用程序、可以购买的应用程序,或者主数据管理的维护工作流,或者是基于 XPDL 的应用程序。

文中概述了使用 BE 的优势,如下:

  • 用户满意 > - BE 方法填补了传统的自顶向下、以过程为中心的分解业务操作领域的方法的空白,对于带有大型端对端范围的业务过程,在开始进行设计活动的时候就拥有少量关键的业务实体,会为我们提供洞察力和清晰度,这在多级过程分解的复杂过程中是很难得的。
    • BE 方法使企业中不同部门之间的通信得到了本质上的提高,因为在很多情况下,BE 类型会覆盖多个部门,并为那些不同部门的利益关系者提供通用的词汇表。
  • 估值的简单性、灵活性,并节省时间 > - 使用 BE 方法,即便是对于大型复杂的系统,我们也可以快速捕获关键的实体、状态以及改变状态的任务。
    • 方法迫使我们拥有简单(但完整)的开始,然后随着逐渐对需求进行建模,会对设计有螺旋上升式的发展,但总是会保持一致性和连贯性。
    • 业务实体的生命周期状态代表过程的里程碑和对业务实物的反应。
  • 成本的降低 > - 因为在之前已经对大多数需求建模,之后只会有较少的重构和起伏。 这使得之后在解决方案的开发周期和部署、维护周期中需要更少的变更。
    • 过程是在实体生命周期中分解的。 这会提升过程定义的重用范围。 它还会让我们拥有设计中的敏捷性,因为变更会限制在过程片段中,而不会影响设计的其他部分。

数据建模肯定是过程定义中的重要部分,但是一般它用于企业的语义数据模型级。 正如文中所说,将这个想法扩展到 BE,是否能够真正更好地设计和实现过程,还有待观察。

查看英文原文: Introducing Business Entities and the Business Entity Definition Language

2010-05-17 08:174163
用户头像

发布了 340 篇内容, 共 146.7 次阅读, 收获喜欢 13 次。

关注

评论

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

Dive into TensorFlow系列(3)- 揭开Tensor的神秘面纱

京东科技开发者

Python 人工智能 深度学习 tensorflow

PCB设计必须考虑的8种安全距离,搞错1种都出大问题!

华秋PCB

PCB PCB设计

腾讯T4带你玩转Spring全家桶

钟奕礼

Java java程序员 java面试 java编程

学历不是问题!社招大专老哥阿里 腾讯Java面试,上岸入职京东

钟奕礼

java程序员 java面试 java编程 #java

数据库精选 60 道面试题

钟奕礼

Java Java 面试 java程序员 java编程

软件测试 | 测试开发 | 校招面试真题 | 实习生和应届生有什么区别?

测吧(北京)科技有限公司

软件测试 软件测试工程师

计算机网络:IEEE 802.11无线局域网

timerring

计算机网络 11月月更

阿里P8出,入职阿里必会199道SpringCloud面试题,你能掌握多少?

钟奕礼

Java java程序员 java面试 java编程

使用 Fiori Elements 框架创建 UI5 Web 应用

汪子熙

web开发 Fiori SAP UI5 ui5 11月月更

首批招募 50 家!「龙腾社区生态发展计划」正式发布

OpenAnolis小助手

开源 操作系统 云栖大会 龙蜥社区 合作

离职、被毕业?职场打工人的最强生存指南!

千锋IT教育

RocketMQ 重试机制详解及最佳实践

阿里巴巴云原生

阿里云 RocketMQ 云原生

「Go实战」在 Go 项目中基于本地内存缓存的实现及应用

Go学堂

golang 缓存 开源 程序员 性能

Wallys/ WiFi6 MiniPCIe Module 2T2R 2×2.4GHz 2x5GHz MT7915 MT7975 /industrial mini pcie card

wallysSK

MT7915

5种GaussDB ETCD服务异常实例分析处理

华为云开发者联盟

数据库 后端 华为云

MetaForce佛萨奇2.0系统开发DAPP搭建

薇電13242772558

dapp开发

声网深度学习时序编码器的资源预测实践丨Dev for Dev 专栏

RTE开发者社区

深度学习 算法 模型

应用程序现代化指南

世开 Coding

应用现代化 软件升级

微服务中的服务发现是什么?

API7.ai 技术团队

微服务 服务发现 API网关 APISIX

灵雀云ACP 斩获“2022金边奖-最佳云原生边缘云平台”

York

容器 云原生 5G 边缘计算 边缘云

终于有人把这份10 万字节详细面试笔记(带完整目录) 整理出来了

钟奕礼

Java java程序员 java面试 java编程 Java 面试题

【LeetCode】统计匹配检索规则的物品数量Java题解

Albert

算法 LeetCode 11月月更

AOP 的九点核心概念和作用

千锋IT教育

深究并行编程Parallel类中的三大方法 (For、ForEach、Invoke)和几大编程模型(SPM、APM、EAP、TAP)

C++后台开发

多线程 后端开发 linux开发 C++开发 并行编程

低门槛上手快!火山引擎VeDI这样满足数据分析新需求

字节跳动数据平台

大数据 BI

Spring 5(五)事务操作

浅辄

Spring5 事务 11月月更

Python图像处理丨5种图像处理特效

华为云开发者联盟

Python 人工智能 华为云 图像处理

PolarDB-X 开源分布式数据库进阶营免费报名中!

阿里云数据库开源

MySQL 数据库 阿里云 开源 PolarDB-X

首次!阿里巴巴团队共同携手编写“大厂面试参考指南”v1.0版本

钟奕礼

Java 面试 java程序员 java 编程 #java Java 面试题

成为千行百业数字化转型催化剂的,竟然是它!

元年技术洞察

微服务 低代码 数字化转型

极客时间架构训练营模块六作业

李晨

架构

介绍:业务实体和业务实体定义语言_SOA_Boris Lublinsky_InfoQ精选文章