SAP集成技术(五)集成风格

上一节介绍了各种集成架构,这一节将介绍各种集成风格(Style)。我们在日常工作中使用这些集成风格来分类不同类型的集成场景。本文将遵循SAP的集成解决方案咨询方法(ISA - M)使用的方法,将集成风格分为以下五种,

  • 流程导向的集成
  • 数据导向的集成
  • 用户界面(UIs)的集成
  • 事物的集成
  • 跨风格的集成

本文链接:https://www.cnblogs.com/hhelibeb/p/17846802.html

内容摘录自《SAP Interface Management Guide》。

流程导向的集成

流程导向的集成是集成环境中的经典风格。这种方法的基本特征是通过接口执行跨应用程序或跨公司的业务流程。

跨应用的业务流程的特点在于,一个特定的业务流程使用多个应用程序,每个部署的应用程序都在流程中用于一个特定的目的。为了让每个应用程序正确地执行其任务,必须在应用程序之间交换信息。

跨应用业务流程的一个例子可以在客户关系管理(CRM)应用程序与企业资源计划(ERP)应用程序的集成中找到。比如,你在CRM应用程序中输入第一次客户接触,并在那里为客户写报价。一旦客户接受了报价,需要在ERP应用程序中创建销售订单。为了进行这一步,需要将信息从CRM应用程序转移到ERP应用程序,以便销售过程继续。表1总结了一些基于流程集成的典型特性。

特性 描述
任务 连接应用程序和/或公司以执行业务流程
集成触发器 在业务流程范围内发生的事件
信息流 • 单向
• 双向
执行时间 几乎实时
消息范围 单个消息
特殊要求 • 事务完整性
• 企业对企业(B2B)支持
• 企业对政府(B2G)支持

表1 基于流程的集成属性

信息交换的触发通常是业务流程中的事件,例如客户接受报价。
当事件发生时,必须进行信息交换并传输信息。通常,一个事件(例如,具体的报价)会影响到一条具体的信息。因此,传输以单个消息的形式进行。
在基于流程的集成中信息交换的执行时间高度依赖于一般框架条件。然而,通常情况下,信息交换应该实时或几乎实时完成,以便业务流程的执行没有延迟。

流程导向集成的一个特殊特性是必须支持跨公司的信息交换。在我们之前的讨论中,我们假设同一家公司内的两个应用程序彼此交换信息。然而,特别是当客户和供应商紧密集成时,业务流程也可以跨越公司边界(例如,保存订单以供供应商转移)。对于企业对企业的通信,通常使用特殊的交换格式来标准化信息交换。

同样的标准化适用于公司与官方机构的集成和通信,比如税务相关的集成。为此,SAP提供预定义的集成解决方案,在各自的集成平台上作为集成内容提供。

在这一点上,我们要强调流程导向集成的事务完整性:信息必须能够从发送者传输到接收者,而不被篡改。在这个背景下,必须考虑两个方面:第一个是数据安全,它负责确保没有第三方可以窃听信息交换并修改交换的信息。第二,实施必须以这样的方式进行,即在信息交换过程中不会修改数据。

数据导向的集成

与流程导向的集成相对,数据导向的集成不必与业务流程连接,可以独立于业务流程进行。目标是在应用程序之间复制数据。

复制的目标是使一个应用程序的数据对另一个应用程序可用。在这个过程中,需要传输全部或部分的数据集。根据数据复制的原因,具体实现可以有不同设计。

数据集成的一个经典例子是事务应用程序和分析应用程序之间的信息交换。在SAP环境中,这个例子通常涉及SAP ERP和SAP BW。数据从事务应用程序复制到分析应用程序。这两种类型的应用程序都优化了各自的数据处理方式,这就是为什么他们都有其存在的理由。
从这个例子中,我们可以推导出数据导向集成的一些属性,这些属性在表2中总结。

特性 描述
任务 在应用程序之间复制数据
集成触发器 事件到达或通过执行时间表的事件
信息流 单向
执行时间 • 批处理
• 几乎实时
消息范围 • 批量消息
• 单个消息
特殊要求 • 复杂的转换
• 数据质量
• 大数据处理
• 数据存储

表2 数据导向集成的属性

在数据导向集成中,存在不同的复制触发器:传统方式是使用数据复制的执行计划。在这种情况下,调度一个作业,并在特定的时间间隔(例如,每天)传输数据。然而,数据导向集成也可以由发生的事件开始,这通常发生在数据的增量传输中。在这种情况下,当一个数据记录发生变化时,只传输变化。

在数据导向集成的背景下,数据可以作为增量或全范围传输。因此,消息范围也可以大不相同。对于批量消息,一个消息中传输几个数据点(或有时在几个消息中)。单个消息总是包含一个数据集。这两种变体都有其优点和缺点:对于单个消息,尤其是当数据量完整时,会传输大量的小消息 —— 消息的高数量可能成为问题。相应地,批量消息可能变得很大,并且在传输过程中可能导致超时。

根据触发器,数据导向集成的执行时间通常是由作业驱动,批处理或近实时。

数据导向集成的一个特殊特性是使用复杂的转换。如我们的例子所描述,一个常见的用例是在事务应用程序和分析应用程序之间复制数据。这两个系统都将数据存储在为它们优化的数据结构中。然而,对于每个应用程序,这个最优的数据结构看起来都不同。因此,数据必须首先被转换为在分析应用程序中使用。此外,在事务和分析应用程序之间传输数据时,通常会进行聚合运算。

数据导向集成的另一个特殊特性是数据质量问题。特别是对于主数据的复制,通常实现了用于提高数据质量的功能。比如重复检查,这些检查根据某些条件(例如,相同的电话号码或地址数据)识别重复的条目。我们客户的一个常见请求是根据特定格式模板在数据导向集成中标准化地址信息。根据需求,可以额外访问互联网上的地址验证服务,以得到高质量的地址信息。

在数据导向集成的背景下,可能需要暂时存储某些信息一段时间。常见的原因之一是为了保持一些信息能够快速访问。作为重复检查的一部分,您可以轻松且快速地将新的数据记录与之前传输的数据记录进行比较,以识别可能的重复项。或者,您可以使用数据存储将信息用于频繁访问。这样,可以减轻信息源系统的频繁访问负担 —— 原则上,这是一种数据缓存。作为数字集成中心的一部分,

用户界面的集成

在这一部分,我们将介绍用户中心应用程序(换句话说,用户界面)的集成。我们的目标是向你展示如何将用户中心应用程序与业务应用程序集成。

用户对用户界面的要求正在增加。当然,你也更喜欢在日常生活中使用吸引人和易于使用的用户界面。因此,软件制造商满足这些要求的需求显得尤为重要。因此,现在的用户界面甚至更加从实际的应用程序逻辑中分离,这意味着必须在用户界面和应用程序之间交换信息。表3总结了这种用户界面集成的特性。

特性 描述
任务 用户界面和应用程序之间的信息交换
集成触发器 用户界面上的用户操作
信息流 双向
执行时间 实时
消息范围 • 单个消息
• 批量消息
特殊要求 • 离线支持
• 设备管理
• 用户管理

表3 用户界面集成的属性

用户界面集成的触发器始终是用户操作。换句话说,用户在用户界面上执行某种活动,并通常期望实时的反应。如果作为用户,你调用了一个带输入表单的接口,例如可以加载输入帮助。根据用户操作,可以发生其他事件,如重新加载某些信息、显示列表中滚动时的额外列表结果。如果你触发了保存事件,信息就会从用户界面传输到实际的应用程序中,以检查数据,然后将其保存到数据库中。

用户界面集成通常在实时响应用户活动时同步实现。

消息可以包括单个或批量消息。批量消息的使用场景之一可能是请求大量信息以在列表中显示信息。在现代接口中,对于列表显示,数据是从后端系统中以较大的块(例如,每次调用20个数据集)检索的。只有当用户在列表中进一步导航(例如,向下滚动)时,才会读取附加的数据块,这可以让用户界面更为流畅。

对于用户界面的集成,存在一些特殊要求。特别是在使用移动设备(例如,笔记本电脑或手机)时,经常有对离线支持的要求:所有或至少某些用户界面的功能应该在没有移动数据连接(到实际应用程序)的情况下仍然可以使用。具体来说,用户界面和应用程序之间的集成只在存在数据连接时执行。在这种情况下,用户界面必须能够缓存所有必要的信息,并在建立数据连接后立即进行数据同步。

使用设备管理可能是集成用户界面时的另一个要求。通过设备管理,您可以确保您的设备总是使用用户界面的当前状态。如果需要,可以主动向设备发送更新,这对于设备管理的安全方面特别有用。这样,可以确保只有经过批准的设备可以使用用户界面。

此外,用户管理是安全的另一个方面。用户管理不仅是谁被允许调用哪些用户界面的问题,还包括用户被允许看到哪些信息。当然,选择从后端系统加载的数据时必须考虑到这一限制,以免加载不必要的数据,甚至显示用户不被允许看到的数据。

物体的集成

这一部分讨论的是物体的集成。在这一部分,我们将向您展示如何将物体与业务应用程序和其他物体集成。

物体(或传感器)指的是在现实世界中产生信息并通过技术使这些信息可用的对象。通常,物体不存储这些信息,只记录或测量它,并实时将其传输。一个物体的例子是,例如,一个数字温度计在某个位置测量和显示温度。然而,理论上,信息也可以被数字化地传输到其他设备。
其他物体:更大的电子设备(例如,智能冰箱、洗衣机等)也可以被称为物体。然而,从我们的角度看,大多数情况下,与这些设备的集成更像是一个基于流程的或基于数据的集成,这就是我们在定义物体时提到传感器的原因。

物体集成的属性在表4中显示。

特性 描述
任务 集成来自现实世界的信息
集成触发器 在物体中的事件
信息流 单向
执行时间 实时
消息范围 单个消息
特殊要求 • 离线支持
• 设备管理
• 协议支持
• 事件流处理

表4 物体集成的属性

触发物体集成的是物体内的事件。如前所述,从我们的角度看,物体是一个简单的电子设备,它捕获或测量并发送信息。因此,在大多数情况下,集成的触发器是物体中的一个测量或感知到的值。

由于物体通常不存储任何信息,测量值被直接发送。物体的典型特征是秒、毫秒甚至更小时间单位的测量间隔,从而导致大量的数据传输。同时,消息相当小。通常,记录或测量的值,一个时间戳和,如果必要的话,物体的标识符就足够作为消息内容了。

与迄今为止介绍的其他集成风格相比,物体的集成涉及的是一个完全单向的信息流。物体只发送信息,不能接收信息。

物体通常是简单的电子单位,不存储任何信息。因此,作为集成的一部分,您必须确保没有信息丢失。为此,尤其需要以这样的方式实现接收应用程序,即使物体暂时失败也不会影响实际的功能。

如上所解释的,设备管理也是集成物体时的一个特殊需求。在这个背景下,主要的问题是一个目录,该目录包含作为集成的一部分将其信息发送给接收者的物体。即使是小型电子设备也可能包含大量的传感器,因此,物体可以提供大量的信息。特别是在多个大型工业设备的情况下,物体的目录是不可或缺的。

另一个特殊要求是扩展协议支持。由于数据频率高,使用HTTP协议并不理想。虽然在物体的集成领域中使用,但特殊的物联网协议针对物体的集成进行了优化。这些物联网协议避免了大数据开销,如HTTP通信中所发生的。因此,特别是在有带宽或体积限制的情况下,你应该使用这些特定的协议。物联网协议的例子包括以下几种:

  • 消息队列遥测传输(MQTT)
  • 受限应用协议(CoAP)
  • 可扩展的消息和存在协议(XMPP)

事件流处理也是物体集成的一个特殊特性。这个要求也主要归因于消息的高频率。传感器可以在短间隔内生成事件消息,从而在短时间内产生大量的事件(例如,每秒钟的温度读数)。事件流处理的目标是将所有类似的事件存储在一个数据流中,从而使它们可用于实时的快速评估。

跨风格集成

所有不能清晰地分配到一种集成风格的集成类型都被认为是跨风格的集成。这些方法要么具有至少两种集成风格的典型属性,要么可以根据实施情况被分配到不同的集成风格。表5显示了我们迄今为止讨论的集成风格的用例模式的一个例子。

主数据复制是跨风格集成的一个例子:您可以将主数据复制分配给基于流程的集成或基于数据的集成,基于数据的集成,这取决于实现。

基于流程的集成 基于数据的集成 用户界面集成 物体集成
主数据复制 X X
机器人流程自动化 (RPA) X X X
API管理的集成 X X X
基于事件的集成 X X X

表格5 用例模式分配到集成风格

在上文的流程导向的集成里面,我们描述了一个基于流程的集成的示例场景,该场景涉及到ERP和CRM系统之间的集成。如果在这个流程集成的部分实现了客户主数据的交换,那么主数据复制将展现出基于流程集成的典型特征。例如,可以在报价转移之前直接在ERP和CRM系统之间交换客户主数据。这样,可以确保在创建销售订单时,必要的主数据信息在两个系统中都以正确的形式存在。

然而,也可以在ERP和CRM系统之间实现主数据复制作为基于数据的集成。在这种情况下,这个集成也有基于数据集成的典型属性,在SAP环境中,通常被称为更改指针逻辑(change pointer logic)。通过这个逻辑,所有对主数据对象的更改都被存储为单独的信息片段。可以使用独立的程序来评估更改信息并触发数据传输。可以使用后台处理的执行计划来安排和执行程序,这是基于数据集成的一个典型特征。

我们认为,跨风格集成的另一个例子是RPA。在RPA中,小型机器人自动化了流程中的某些处理步骤。为此,通常在应用程序的用户界面中记录必要的输入步骤。然后,可以为大量数据执行记录的输入步骤,从而可能进行大规模数据获取或处理。因此,我们将RPA视为一种跨风格的集成,因为它可能具有基于流程、基于数据和用户界面集成的特征。关于这个话题的更多信息,我们推荐《Introducing SAP Intelligent Robotic Process Automation》一书。

API管理的集成是另一种跨风格集成。在这个背景下,服务的提供者和服务的调用者之间插入了一层管理层,即API管理层。API管理允许你集中管理所有提供的服务。此外,可以通过安全和管理策略以细粒度的方式定义对服务的访问。评估功能提供了详细监控服务使用情况的能力。原则上,可以将任何类型的集成实现为API管理的集成。因此,我们将API管理的集成视为一种跨风格的集成。

上文提到了物体集成中的事件。然而,基于事件的集成并不仅限于物体的集成,而且也存在于其他集成风格中。特别是,集成可以在基于流程和基于数据的集成中以基于事件的方式实现。SAP现在为SAP S/4HANA(Cloud)提供了一些事件,这些事件被称为SAP S/4HANA(Cloud)业务事件。你可以在SAP API Business Hub中找到这些事件的概述(参考SAP集成技术(二)接口库)。例如,可以消费事件来触发流程集成中的操作。