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集成技术(二)接口库)。例如,可以消费事件来触发流程集成中的操作。
SAP集成技术(五)集成风格的更多相关文章
- SAP开源的持续集成-持续交付的解决方案
SAP开源的持续集成/持续交付的解决方案: (1) 一个叫做piper的github项目,包含一个针对Jenkins的共享库和一个方便大家快速搭建CI/CD环境的Docker镜像: (2) 一套SAP ...
- 3DGIS与BIM集成集成技术及铁路桥梁可视化系统
3DGIS与BIM的集成技术 3DGIS与BIM的集成技术包括2部分:一是将Revit软件生成的BIM针对3DGIS的快速无损格式转换,这种转换包括几何信息(如形状.位置等信息)和属性信息(如建筑信息 ...
- Python神经网络集成技术Guide指南
Python神经网络集成技术Guide指南 本指南将介绍如何加载一个神经网络集成系统并从Python运行推断. 提示 所有框架的神经网络集成系统运行时接口都是相同的,因此本指南适用于所有受支持框架(包 ...
- TorchScript神经网络集成技术
TorchScript神经网络集成技术 create_torchscript_neuropod 将TorchScript模型打包为neuropod包. create_torchscript_neuro ...
- PyTorch神经网络集成技术
PyTorch神经网络集成技术 create_python_neuropod 将任意python代码打包为一个neurood包. create_python_neuropod( neuropod_pa ...
- Keras神经网络集成技术
Keras神经网络集成技术 create_keras_neuropod 将Keras模型打包为神经网络集成包.目前,上文已经支持TensorFlow后端. create_keras_neuropod( ...
- 环信 之 iOS 客户端集成四:集成UI
在Podfile文件里加入 pod 'EaseUI', :git => 'https://github.com/easemob/easeui-ios-cocoapods.git' 然后在终端中的 ...
- SAP 前端技术的演化史简介
Jerry之前曾经写过一篇微信公众号文章,题目叫<> 关注我的公号"汪子熙"后,在历史菜单"前端开发相关"里即可找到这篇文章: 该文章简单回顾了SA ...
- 【ABAP系列】SAP DOI技术中I_OI_SPREADSHEET接口的使用
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP DOI技术中I_OI_S ...
- Taurus.MVC 微服务框架 入门开发教程:项目集成:3、客户端:其它编程语言项目集成:Java集成应用中心。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
随机推荐
- KingbaseES V8R3数据库运维案例之---不完整的启动包(incomplete startup packet)复现
案例说明: 在KingbaseES V8R3数据库的sys_log日志中,出现以下故障信息"不完整的启动包(incomplete startup packet)"日志信息.本案例复 ...
- 自己写个网盘系列:③ 开源这个网盘编码,手把手教你windows linux 直接部署,docker本地打包部署网盘应用
系列①②已经完成了这个项目的页面和项目的全部编码,前后端分离,这个文章将向你展示运维小伙伴如何部署到windows服务器,linux服务器,docker部署,一学就会,快来看看吧! 说明:这个系列准备 ...
- 2022福州大学MEM复试英语口语准备
一.自我介绍 Dear professors, it's my honor to be here for my interview. My name is ,I finished my undergr ...
- #阶梯NIM,树形dp#CF1498F Christmas Game
题目 Alice 和 Bob 在一棵 \(n\) 个点的树上玩游戏,第 \(i\) 个节点上有 \(a_i\) 个石子, 每轮可以选择一个深度至少为 \(k\) 的节点并移动任意多石子到其 \(k\) ...
- #倍增,LCA,Kruskal#JZOJ 1092 洛谷 4180 [BJOI 2010] 次小生成树
题目 给出一个无向图,问它的严格次小生成树(数据保证有解) 分析 首先先找一棵最小生成树,然后对于每条非树边\((x,y,w)\)可以找到最小生成树上\(x,y\)路径上略小于\(w\),首先如果能找 ...
- #博弈论#Poj 2484 A Funny Game
题目 \(n\)个石子排成一圈,每次可以取一个或相邻的一对, 取完为胜,问先手是否必胜 分析 无论先手如何取,后手都能模仿先手的取法. 比如说,当石子个数为奇数时先手取相邻的一对,后手可以将对面的那一 ...
- #拓扑排序#洛谷 4645 [COCI2006-2007 Contest#3] BICIKLI
题目 这个地方有 \(n\) 个城镇,从 \(1\sim n\) 编号, 其中有 \(m\) 条单向道路连接它们. 比赛将在 \(1\) 号城镇开始并在 \(2\) 号城镇结束. 主办方想知道,一共有 ...
- Go 中的格式化字符串`fmt.Sprintf()` 和 `fmt.Printf()`
在 Go 中,可以使用 fmt.Sprintf() 和 fmt.Printf() 函数来格式化字符串,这两个函数类似于 C 语言中的 scanf 和 printf 函数. fmt.Sprintf() ...
- OpenHarmony 3.2 Beta多媒体系列——视频录制
一.简介 媒体子系统为开发者提供了媒体相关的很多功能,本文针对其中的视频录制功能做个详细的介绍.首先,我将通过媒体子系统提供的视频录制Test代码作为切入点,给大家梳理一下整个录制的流程. 二.目录 ...
- 我为什么选择Wiki.js记笔记?
很长一段时间里,我都被困扰着,感觉陷入了笔记的泥潭,而积累的如此多的笔记也没有形成我自己的知识体系. 之前的记笔记方式 笔记的来源 微信公众号 技术博客 纸质书籍 官网文档 PDF 自己的零散想法 网 ...