有朋友提问:

外部SaaS应用通过ODATA API访问SAP标准接口,直接从本方应用发起访问就可以,无需借助PI或者BTP类的平台吧?既然这样,通过BTP或CPI来构建应用相对比直接在第三方平台上构建应用的好处是什么呢?是因为这2个平台除了获取数据,有更多关于流程设计和类似扩展插件(不用重复造轮子)的功能,并可以发布到SAP应用市场吗?也就是如果我不需要这些插件辅助,不到应用市场发布,是可以绕过这些平台的。

关于 SAP 和第三方系统之间的集成,我写过一篇短文:SAP S/4HANA Cloud 系统集成的一些场景介绍

SAP On-Premises 和 SAP Cloud 产品,都可以将其业务,以 OData 服务的方式暴露出来,供第三方系统集成使用。

SAP Cloud 产品,更准确的说,SAP Public Cloud 产品,其 OData 服务可以直接通过公网访问。理论上,在第三方应用上,直接采用 Java,C#,nodejs,Python 或者其他编程语言,调用 OData API 即可。在同 SAP Public Cloud 集成的场景下,第三方应用既可以部署在 SAP BTP 上,也可以部署在任何其他服务器上,比如本地服务器,或者腾讯云,阿里云等等。

反观 SAP On-Premises 暴露的 OData API,因为 SAP On-Premises 通常部署在企业内网,因此其 OData API 无法直接被第三方应用访问到,需要使用 SAP Cloud Connector,实现内外网穿越,即下图中间的 Secure Tunnel. 在这种场景里,SAP BTP 是必须的。

SAP BTP 除了结合 SAP Cloud Connector 实现第三方应用访问企业内网 On-Premises 系统之外,本身的 Service Market Place 上也提供了很多开箱即用的服务,即包括应用程序层级的 Business Service,也有偏底层基础设施(infrastructure)层面的 Technical Service. 第三方应用部署到 SAP BTP 上之后,可以消费这些服务,避免重复造轮子。

当然,如果第三方应用不需要连接 SAP On-Premises 系统,也不需要使用 SAP BTP 服务市场这些服务,那么理论上,不将第三方应用部署在 SAP BTP 上,技术上也没有问题。

再说 CPI. 第三方系统通过同步 OData API 的方式同 SAP 系统集成,实现简单,代价小。而 SAP CPI 作为 第三方系统和 待集成 SAP 产品之间的中间件,两种方式各有优缺点。采用 OData API 直连 SAP 系统的方式,我们可以理解成广义上的消息通讯机制,这种机制缺乏消息的持久化,消息监控,消息发送出错后的重试机制等等。当第三方系统同 SAP 产品交换的场景趋于复杂时,比如下面这张图里展示的,外部系统同 SAP S/4HANA 服务场景的集成,第三方应用会主动向 S/4HANA 发送两条消息,并接收从 SAP S/4HANA 回复的一条异步消息。只有当这两发一收操作全部结束之后,一个场景才算完全处理完毕。如果采用 OData API 发送机制实现,这个场景的错误处理,边界条件控制等措施,需要在第三方应用内部实现,开发复杂度比较高。而这些正是 SAP CPI 作为中间件的强项和用武之地。

综上,第三方系统同 SAP 系统集成,是否选择 SAP BTP 或者 CPI,取决于集成所需实现的具体场景以及实现复杂度。

更多Jerry的原创文章,尽在:“汪子熙”:

答网友问:如果用 OData 就能直接和 SAP 系统互通,BTP 和 CPI 这样的平台意义在哪里呢?相关推荐

  1. [答网友问]让GridLength支持动画

    [答网友问]WPF中让GridLength类型支持动画                                                               周银辉 今天一位收到 ...

  2. 单片机应用编程技巧---MCU专家答网友问

    单片机应用编程技巧---MCU专家答网友问 单片机应用编程技巧 Holtek MCU专家--邓宏杰答网友问 (转自电子工程专辑网站) 1.    C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇 ...

  3. 嵌入式linux程序没有任何提示退出,答网友问:嵌入式Linux执行程序提示Not found的解答...

    class="markdown_views prism-atelier-sulphurpool-light"> 某日,网友不会飞的骆驼问了我一个问题.在嵌入式Linux系统中 ...

  4. 8月29日李开复做客CNET(中国)答网友问(全文)

    : 各位网友:大家好 : 非常高兴和大家再次见面,本周三我们邀请Google(谷歌)全球副总裁大中华区总裁李开复博士来CNET(中国)媒体作客,主要是想和网友们一起讨论下互联网搜索引擎的技术产品.市场 ...

  5. 客户端爬取-答网友问

    "客户端爬取"发布之后,有鲜花也有质疑,也有很多爱智求真.善于思考的同学在点赞之余,提出了一些有价值或者觉得有必要一答的问题,包括技术层面和道德层面,本文就主要问题作出解答. 在阅 ...

  6. 答网友问:一个abs函数引发的问题

    某日,网友吃泡面不加开水加我好友,问了一个关于abs函数的问题.在keil中,使用abs计算浮点数的绝对值是没问题的,同样的代码,放到gcc交叉编译器中,却得不到预期结果.趁夜深人静,看了些资料,帮网 ...

  7. 微信第三方开发者答网友问 微信创业靠谱吗

    一.基础常识 1.所谓的第三方开发,就是腾讯公众平台内开放的开发者模式.用户可以根据个人不同的需求开发不同的功能. 2.开发模式后,有两个需要我们去填写的东西:一个是ur,一个是token:简单的解释 ...

  8. 接口超时后程序还会继续执行嘛_答网友问:分析一段STL程序,并就如何读懂一段程序谈几点感想...

    在文章<S7-300/400进阶笔记5.1:300系列PLC的装载存储器的类别及方法>一文后,有小伙伴在评论区提了个问题,驼子决定有必要写一篇文章,和大家一起讨论一下.也希望小伙伴们能向& ...

  9. 产品经理能力模型 答网友问

    多读书.多学习.多求经验,就是前途的保障.-- 罗曼·罗兰(法) 之前发的文章<创业团队从0到1,产品设计师.产品经理的能力模型与职业成长之路>,得到了很多朋友的反馈,在这里把我的回答汇总 ...

最新文章

  1. 每日一皮:男人有三宝「胡子、发型和肌肉」...
  2. slf4j的jar包冲突:LoggerFactory is not a Logback LoggerContext but Logback is on the classpath
  3. python中的单下划线和双下划线_python 里面的单下划线与双下划线的区别(私有和保护)...
  4. Python2和Python3的兼容性写法
  5. 销售流程图_工作流程图网络图模板,招聘销售合同库存,完整设计拿来就用
  6. 【今日CV 视觉论文速览】29 Nov 2018
  7. SQL SERVER 2014 安装图解(含 SQL SERVER 2014 安装程序共享)
  8. ***PHP各种编码的汉字字符串截取
  9. Rust 1.7.0 处理命令行參数
  10. HTML5-------元素使用
  11. 24. Magento 创建新闻模块(4)
  12. window7 右键菜单显示-》在此处打开命令窗口
  13. python体验课是上纯代码_附实战代码|告别OS模块,体验Python文件操作新姿势!...
  14. C-COT目标跟踪-----连续卷积算子
  15. Python Traceback (most recent call last)【StopIteration】
  16. 破解 WIDCOMM 蓝牙驱动的方法
  17. P9:最大池化的使用
  18. 中间件小师妹 de 年度工作总结
  19. 指令集与微架构 扫盲
  20. [未来成长] 分享:《麦肯锡教我的写作武器》如何写出一篇具有逻辑表现力的文案...

热门文章

  1. C++ 解决enum redeclaration的冲突
  2. 二叉树的建立和遍历算法 - 数据结构和算法47
  3. [项目过程中所遇到的各种问题记录]编辑器篇——FCKeditor自定义上传路径配置...
  4. 深度剖析WinPcap之(七)——获得与释放网络适配器设备列表(5)
  5. 常用数据类型(C#)
  6. linux cpio(copy in/out) 命令详解
  7. WinAPI: midiOutCachePatches - 预装音色
  8. 第六章:Java_异常处理
  9. Python3 练习笔记五
  10. 汽车电子传感器科普:激光雷达 毫米波雷达 超声波雷达