SAP集成技术(十二)SAP PO
集成工作的一个重要部分是基于流程的集成,而在SAP环境中实现接口需求的众所周知的产品是SAP Process Orchestration(以下简称SAP PO)。
现代集成架构通常使用中央系统来控制和处理应用程序之间的通信。这些系统通常被称为中间件或集成平台。
SAP PO是可以用作中心中间件产品。通过SAP PO,基本上可以设置不同的集成架构。SAP PO是一个经典的软件产品,可以在自己的基础设施内安装和运营它。
内容摘录自《SAP Interface Management Guide》。
本文链接:https://www.cnblogs.com/hhelibeb/p/17893424.html
SAP PO概览
在本节中,我们将提供SAP PO的概览。表1显示了SAP PO及其前身的不同版本的概览。这个SAP中间件的第一个流行版本是SAP Exchange Infrastructure(SAP XI)3.0,它于2004年12月发布。2006年6月,发布了第一个继任者:SAP Process Integration版本7.0(以下简称SAP PI)。从这个版本开始,SAP PI的版本号基于其关联的SAP NetWeaver版本。
名称 | 发布时间 | 特点 |
---|---|---|
SAP XI 3.0 | 2004年12月 | - |
SAP PI 7.0 | 2006年6月 | 支持Java 1.5 |
SAP PI 7.10 | 2008年7月 | 引入高级适配器引擎(AAE) |
SAP PI 7.11 | 2009年6月 | - |
SAP PI 7.30 | 2011年5月 | • 包含高级适配器引擎扩展(AEX)的选项 • 支持Java 1.6 |
SAP PO 7.31 | 2012年5月 | - |
SAP PO 7.40 | 2013年5月 | - |
SAP PO 7.50 | 2016年10月 | 支持Java 1.8 |
表1 SAP PO版本及其特点的历史 |
SAP XI和SAP PI作为双栈安装运行。换句话说,如图1所示,运行它们需要SAP NetWeaver Application Server for ABAP(SAP NetWeaver AS ABAP)和SAP NetWeaver Application Server for Java(SAP NetWeaver AS Java)。之所以需要双栈,是因为SAP PI的不同组件是基于不同技术开发的。例如,IDoc通信长时间以来需要使用SAP NetWeaver AS ABAP,因为IDoc只作为ABAP功能提供。
图5 SAP PI:双栈安装
自2011年5月起,可以选择以AEX安装(也称为单栈安装)运行SAP PI。在这种情况下,如图2 所示,SAP PI的所有组件都运行在基于Java的应用服务器上。这种安装解决方案的优势是所有消息处理都在一个应用服务器上进行,不需要应用服务器之间的通信。因此,可以在消息处理时间方面取得性能优势。
图2 SAP PI:高级适配器引擎扩展
自2012年5月起,可以选择安装SAP PO以及SAP PI。SAP PO提供了两个额外的组件,如图3所示:首先是SAP Business Process Management(SAP BPM)用于处理和控制跨系统流程;其次是SAP Business Rules Management(SAP BRM)用于业务规则的中央定义和存储。自SAP PI 7.50起,不再可以作为双栈系统安装。尽管仍然可以额外安装基于ABAP的应用服务器(一种称为双重使用的方法),但这种方法不推荐,应只在特殊情况下考虑。
截至2021年1月,SAP官方支持的SAP PO的唯一版本是7.50。其他所有版本将在2020年12月各自SAP NetWeaver版本的维护结束后不再受支持。目前,SAP PO 7.50将继续由SAP支持,常规维护至2027年12月,延长维护至2030年12月。在那之后,不再计划提供进一步的支持,SAP也不打算发布新版本的SAP PO。
图3 SAP PO的组件
SAP Cloud Integration是SAP PO的后继产品,将在后文中详细介绍。然而,SAP Cloud Integration目前只作为基于云的解决方案提供。中间件的一个主要优势是它也可以在本地运行,特别是在本地到本地的集成中。SAP一直在研究SAP Cloud Integration的本地变体。然而,也可以在SAP Cloud Integration中开发接口,并在此期间在SAP PO中运行它们。
接口管理功能
本节介绍SAP PO用于接口管理的不同功能。请注意,本节将重点介绍SAP PI的功能。欲了解更多信息,我们推荐J. Mutumba Bilay和R. Viana Blanco所著的SAP PRESS书籍《SAP PO》(参见SAP PO: The Comprehensive Guide)
支持的集成领域
可以在实施不同领域的场景时使用SAP PO。原则上,可以在所有集成领域中使用SAP PO。然而,SAP PO的优势在本地到本地和本地到云的集成领域尤为明显。
在本地到本地的集成领域中,通常是两个本地运营的应用程序相互通信。由于SAP PO也是本地安装和运营的,因此在这个集成领域中,SAP PO的优势大于SAP作为云服务提供的其他集成产品。理想情况下,通过SAP PO从本地通信到本地时,不会离开自己的网络。即使在临时失去互联网连接的情况下,也可以通过本地网络继续通信。
SAP PO在本地到云的集成领域也特别有用。在这方面的一个典型例子是跨企业通信。SAP PO仍然是本地运行的,但在这种情况下,通信是与外部合作伙伴进行的。因此,应该注意如何保护对SAP PO系统的访问,因为外部通信是进入内部网络的潜在入口。
云到云:
当然,也可以将SAP PO用于其他集成领域。然而,这涉及到一些挑战。例如,出于性能原因,通过本地安装的SAP PO系统处理云到云通信是没有意义的。另一个原因是系统可用性。需要确保的SAP PO系统至少具有与两个云提供商为其应用程序提供的相同的可用性。此外,出于性能原因,通过本地安装的SAP PO系统路由消息会给网络带来负担,因此没有意义。
在这一点上,让我们来看两个通常可以归类为本地到云集成领域的进一步用例。
对于企业到企业(B2B)通信,必须考虑特殊的消息格式和技术。对于SAP PO,SAP在SAP PI B2B附加组件中提供了这些功能。B2B附加组件由三个模块组成,如图4所示:
• B2B服务
• B2B适配器
• B2B转换模块
图4 SAP PI企业对企业附加组件概览
这些B2B服务是SAP PO中的功能,在B2B通讯环境中通常会使用。这些服务包括,例如,为消息映射提供的特殊预定义功能,或者在消息和合作伙伴层面定义号码范围的能力。B2B适配器提供特殊的传输技术,比如Applicability Statement 2(AS2)、欧洲数据交换格式(OFTP)和X.400。B2B转换模块为SAP PO提供了处理特殊格式的数字文档交换能力,这些格式称为电子数据交换(EDI)格式,并将它们转换成符合SAP PO标准的XML格式以便进一步处理。
商业对政府(B2G)通讯通常涉及企业根据法律要求向政府机关报告的情况。在德国最著名的例子是通过Elster进行的销售税预缴申报。对于这种形式的通讯,SAP提供了预定义的内容,只需要导入并在SAP PO中配置即可。
集成能力
对于大多数接口,SAP PO中的不同功能将是满足需求所必需的。原则上,本节介绍的功能可以以任何方式组合,并不一定要用于消息处理。图5示意性地显示了SAP PO中消息处理的流程。我们将在本节中更详细地描述各个处理步骤。
图5 SAP PO中消息处理的示意流程
让我们更详细地看一下这些处理步骤:
- 数据转换
在数据转换的上下文中,消息在处理过程中从发送结构转换到目标系统的目标结构。为此,图形映射框架内提供了各种操作符,除了图形映射之外,还有额外的选项:可扩展样式表语言转换(XSLT)和Java映射允许实现更复杂的数据转换需求。然而,必须在SAP PO之外开发这些映射,因为SAP PO不提供编辑器。因此,可以在偏好的编辑器中或公司提供的编辑器中开发这些映射。 - 消息持久性
原则上,中间件不是消息存储。尽管如此,在某些情况下您可以临时存储数据。但是,请注意,这个选项应该只在特殊情况下使用,因为它可能对系统性能产生负面影响。我们估计在中间件中需要数据存储的需求相当低。SAP PO可以根据系统的配置存储不同状态的消息,以便进行错误分析和错误处理;因此,通常不需要额外的存储。 - 数据安全
数据安全在接口管理中扮演着重要的角色。首先,连接时应始终使用安全的协议——例如,使用安全文件传输协议(SFTP)而不是文件传输协议(FTP),使用超文本传输安全协议(HTTPS)而不是超文本传输协议(HTTP)。在SAP PO中,可以使用SAP流程集成安全连接附加组件来提供增加数据安全性的功能。该附加组件提供了例如锁定和解锁消息的选项。此外,可以在监控中使用权限来控制哪些用户可以看到什么信息。比如,某些员工可能不应该被允许看到通过接口传输的人事数据。 - 消息路由
中间件的核心任务之一是确定消息的正确接收者(路由)。消息可以被路由到一个接收者,也可以是多个接收者。接收者可以根据不同的标准确定,例如消息类型、消息发送者或消息内容。和路由本身一样重要的是错误处理,如果无法确定接收者,可以为SAP PO中的每个接口单独配置。 - 消息组合
如果源系统发送的数据对于目标系统的成功消息处理来说不足,可以使用查找功能从应用程序中读取更多数据。默认情况下,SAP PO通过Java数据库连接或RFC提供查找功能。然而,应该注意每次查找都会增加处理时间,从而减少SAP PO的整体数据吞吐量。此外,如果查找失败或没有返回任何数据,必须在SAP PO中实现高级错误处理。 - 消息监控
通过消息处理,SAP PO中有另一个全面的功能,允许监控整个处理过程。日志文件记录了单个处理步骤,以便可以轻松识别和纠正错误。此外,为了补充已经描述的消息持久性,可以记录消息以支持错误分析。由于消息监控是接口管理中的一个重要话题,我们将在后文中更详细地讨论其功能。
连接器
对于与SAP和非SAP应用程序的集成,SAP PO提供了许多适配器类型,如表2所列。第三方供应商还提供了额外的适配器类型。
适配器类型 | 描述 |
---|---|
AS2 | 通过AS2协议连接B2B合作伙伴。此适配器是B2B附加组件的一部分。 |
BC | 实现与SAP Business Connector的连接。 |
CIDX | 化学工业数据交换(CIDX); 提供对化学标准的支持。 |
EDISeparator | 来自B2B附加组件的特殊适配器,可以用来从一个技术传输中分离出多个EDI消息。 |
File | 通过文件接口或FTP服务器交换数据。 |
http_AAE | 通过HTTP(S)协议连接应用程序。 |
IDoc_AAE | 通过SAP PO交换IDocs。 |
JDBC | 通过JDBC访问任何数据库。相应的JDBC驱动程序必须部署在SAP PO上。 |
JMS | 通过SAP PO上的消息队列实现异步消息处理。 |
通过连接的电子邮件服务器,使SAP PO能够发送或接收电子邮件。 | |
Marketplace | 实现XI消息格式到市场格式MarketSet Markup Language (MML)的转换。 |
OData | 建立基于OData通信的适配器类型;是安全连接附加组件的一部分。 |
OFTP | OFTP是B2B附加组件的特殊传输格式。 |
REST | 根据REST原则实现远程客户端或Web服务服务器之间消息的交换。 |
RFC | 使SAP PO能够对本地现场系统进行RFC调用。 |
RNIF(11) | RosettaNet实现框架(RNIF)允许在集成服务器和符合RosettaNet的系统(RNIF协议1.1/2.0)之间交换消息。 |
SFSF | 连接到SAP SuccessFactors系统的适配器类型;是安全连接附加组件的一部分。 |
SFTP | 通过SFTP实现基于文件的通信;是安全连接附加组件的一部分。 |
SOAP | 使远程客户端或Web服务服务器与集成服务器之间能够传输SOAP消息。 |
WS_AAE | 负责远程客户端或Web服务服务器与集成服务器之间SOAP消息的交换。 |
X.400 | X.400是B2B附加组件的特殊传输技术。 |
表2 SAP PO:适配器类型 |
在SAP PO中,可以通过使用适配器模块来扩展通信通道的功能。每个通信通道都被分配给确切的一个适配器类型。适配器模块在适配器和消息服务之间被调用。可以在通信通道中插入其他需要额外执行的模块。为此,在同步或异步通信的情况下,将模块插入适配器模块之前。图6展示了一个例子,在各自的适配器模块之前插入了模块1和2(取决于通信方向)。
图6 异步通信的模块链示意图
SAP交付了一些模块,可以使用这些模块来扩展模块处理功能。一个例子是PayloadZip模块。使用这个模块,可以打包或解包整个消息。此外,可以开发自己的模块并将它们包含在模块处理中。这项开发工作是用Java完成的,并提供了几乎无限的可能性来处理和修改消息。
接口的实现
在SAP PO中接口的实现与SAP Cloud Integration的方法有根本性的不同。使用SAP PO,接口的实现分为两个步骤:
- 设计时(Design time)
- 配置时(Configuration time)
在设计时,需要结构性地定义接口。换句话说,需要指定源和目标结构的定义,结构间映射的样子,以及系统接口的属性。例如,你将指定接口是同步的还是异步的,以及接口由哪些消息部分组成。原则上,在设计时,你将定义一个大型的结构和结构映射仓库 —— 而不直接参照特定的应用程序。
实际将结构和接口定义与应用程序链接在一起的过程发生在配置时。在配置时,需要定义实际的技术消息流。只有在这个时点,才确定各个应用程序用于通信的技术,为从SAP PO到各自应用程序的连接在通信通道中定义技术连接参数。
可以使用两种不同的工具在SAP PO中实现接口:推荐的方式是使用SAP提供的SAP NetWeaver Developer Studio中的SAP PO工具,这是一个基于Eclipse的开发环境。使用不同的视图,可以在设计时或配置时工作。
使用正确版本的SAP NetWeaver Developer Studio
在使用SAP NetWeaver Developer Studio时,请确保始终使用与的SAP PO版本和支持包(SP)级别相对应的版本。虽然理论上较旧版本的SAP NetWeaver Developer Studio可以与更新版本的SAP PO一起工作,但无法使用SAP PO的所有新功能。
Java Web Start(Swing UI)应用程序是可用的,但不再被SAP推荐和开发。
可以从SAP PO系统的启动页面启动这些应用程序。在设计时,您可以使用企业服务构建器(Enterprise Service Builder),在配置时,使用集成构建器(Integration Builder)。
自SAP PO 7.31起,在配置时可以使用iFlows。iFlows的图形表示是通过一种建模方式定义的。只能在SAP NetWeaver Developer Studio中使用iFlows。
监控接口
对于接口管理来说,一个重要的功能是监控参与的系统和消息流,以确保运行顺畅。在后文,会更详细地介绍使用SAP Solution Manager进行中央监控的选项。在本节中,我们将简要解释SAP PO中的监控选项。
组件监控器提供了SAP PO系统的一般状态概览。它检查系统的各种组件(例如,企业服务库ESR、映射运行时、业务流程引擎BPE等)的可用性,并对每个组件执行自检。在自检期间,会根据组件执行各种检查(例如,是否通信通道有故障,是否已定义必要的配置参数等)。
图7展示了组件监控器的一个示例。中央适配器引擎的自检出现故障,因为一个通信通道指示了错误状态。此外,自检日志还表明另一个通信通道已被禁用。
图7 SAP PO 7.5中的组件监控器
消息监控器提供了SAP PO系统中所有处理消息的概览。显示基于iFlows或集成配置。可以查看单个消息的处理日志,并在必要时显示消息内容以进行错误分析。
图8展示了消息监控器的一个示例。对于每个发送组件、接收组件和接口的组合,可以看到消息的汇总,也可以通过显示的消息编号导航到单个消息的详细监控。
除了消息监控器,通信通道监控器是运行接口的另一个基础监控器。通过通信通道监控器,可以停止或启动单个通信通道。在处理详情中,如果消息已成功处理,可以跳转到消息监控器查看消息的详细信息。在出现错误的通信通道的情况下,通信通道监控器提供发生错误的详细信息。
图8 SAP PO 7.5中的消息监控器
图9展示了通信通道监控器的一个示例。在上半部分,可以看到现有通信通道的一般概览。默认情况下,故障和非活动通道显示在列表的顶部。选择一个通信通道时,将在屏幕的下部看到处理详情,包括错误情况下的错误描述。
图9 SAP PO 7.5中的通信通道监控器
一个特殊的监控器是B2B消息监控器,它随B2B附加组件一起提供。这个监控器旨在展示有关B2B特定流程的详情。例如,关于消息处理通知(MDN),一种AS2协议中的收据确认,在消息监控器中会显示更详细的信息。还可以根据其他标准过滤和选择消息。
SAP PO中的其他监控器
SAP PO系统中有许多更多监控器来监控系统和消息处理。在本节中,我们向介绍了用于操作使用的最重要的监控器,可以单独查询资料。
实施云内容
正如之前部分描述的,SAP PO已经确定会退役。作为其继任者,SAP已经推出了SAP Integration Suite,并且目前正在开发一个本地版本。因此,我们认为应该在新接口开发中考虑到这个情况。
并非每一个接口需求都能在完全基于云的中间件平台上得到合理实施。因此,SAP创建了一个选项,可以在SAP PO系统上为SAP Integration Suite运行接口。这些接口完全在SAP Integration Suite的基于云的环境中开发。在iFlow中,可以选择SAP PO 7.50作为运行时配置文件,并选择与系统匹配的SP版本。因此,当设计iFlow时,只会显示当前SAP PO版本所支持的组件。
然后,可以将iFlow部署到SAP PO。在这个步骤中,可以使用之前建立的连接,或者从SAP Cloud Integration下载创建的iFlow并重新上传到SAP PO。接着,接口可在SAP PO中使用。
要使用前述功能,需要至少在SP 05级别的SAP PO系统。每个新的SP版本,SAP Cloud Integration的新功能都会在SAP PO中提供。关于SP版本的详细信息,请参见SAP帮助门户网站的What's New。此外,需要访问SAP Integration Suite,以便为SAP PO中的云运行时开发接口。
推荐的SAP PO的最低版本
建议在至少SP 12的SAP PO系统中使用SAP Cloud Integration内容。在此SP中,ProcessDirect适配器首次在SAP PO中提供,这是SAP Integration Suite接口设计的基础元素。
此外,当使用SAP Cloud Integration内容时,建议定期更新SAP PO系统。
如果使用这两个中间件平台,并希望实施新的接口需求(尤其是面向本地到本地集成领域),推荐使用这个选项。这样,可以减少后期迁移的工作量,并在实施SAP Cloud Integration接口时获得宝贵的经验。
使用案例
本节将介绍一些SAP PO的可能使用案例。
一家公司使用SAP Cloud Integration作为中心集成平台。对于一些与遗留系统的接口,存在使用数据库建立连接的需求。在实施时,SAP Cloud Integration中没有可用的JDBC适配器,或者适配器只能与基于云的SAP HANA数据库一起使用。因此,在这种情况下使用了SAP Cloud Integration和SAP PO的组合。
接口的示意结构如图10所示。原则上,发送系统调用SAP Cloud Integration端点(第一个iFlow)。在这里,消息被准备好用JDBC适配器处理,稍后在SAP PO上的一个通用iFlow中处理。这个通用iFlow直接将收到的数据转发到数据库中,无需任何处理。
图10 SAP Cloud Integration的JDBC连接的SAP PO直通场景的示意结构
为建立全球SAP PO布局,有多种选项可供选择。在最简单的情况下,有一个中央SAP PO系统,所有应用系统都连接到该系统,如图11所示。
图11 一个用于全球通信的中央SAP PO系统
然而,中央SAP PO系统的缺点是所有通信也都通过这个中央实例进行,不管其他系统的位置如何。特别是出于性能原因,可能需要集成平台物理上靠近应用系统。
对于SAP PO,可以选择在这种情况下使用分散的适配器引擎(DAE)。这些接口继续在中央SAP PO系统上设计。但是,在配置期间,可以决定配置对象应在哪个适配器运行时执行。例如,可以设置一个在美国操作的分散适配器运行时中执行的两个美国应用系统之间的接口,如图12所示。
图12 一个带有两个分散适配器引擎的中央SAP PO系统
如上所述,可以通过在接口中使用适配器模块来包含额外的处理步骤。图13显示了在SFTP通信通道中调用的适配器模块的例子。
图13 SAP PO 7.5中的适配器模块
首先,调用适配器模块IDOCXmlToFlatConvertor。这个模块用于将IDoc从XML格式转换成平面结构(例如CSV文件)。在模块配置区域,将看到为各种模块指定的参数。在这种情况下重要的是SourceDestination,可以使用它来加载IDoc的元数据。在第二步中,使用TextCodePageConversionBean模块。在模块配置部分,请注意,在这种情况下,已经选择了ISO-8859-15字符集。在第三步和最后一步,调用实际的适配器类型(在本例中为SFTP适配器)。