这是一个问题。
上图的 One Order 是楼下一个部门领导让我给他的团队做的一个古老框架的 session. 这个框架诞生于 2000 年,采用纯面向过程的思路开发。因为上世纪 90 年代 ABAP 开始引入对面向对象编程的支持后,很多语言层面的 OO 特性还不 mature, SAP 开发还没有养成使用 OOP 开发的习罐,所以 SAP 当时也没有新开发必须用 OOP 的强制规定。
很多朋友可能瞧不起 SAP 传统产品里这些自研的框架,认为它们和当今互联网的产品比起来,笨重,不性感,没有使用任何业界流行的技术,架构,开源组件,和同行聊天时,这些自研框架上没有什么可以吹嘘的亮点。
但我个人认为,从产品和工程层面说,像 SAP one order 这种框架是很成功的,一个 2000 年诞生的框架,将近 20 年后仍然运行于 SAP 全球众多 CRM On Premises 系统上,并且从 2016 年开始,CRM 的 service process 并入了 S /4HANA, 这意味着只要 S /4HANA 的 service 模块还在,这个框架就会一直使用下去。S/4HANA service 流程的 roadmap 在官网能查到,从 roadmap 也能看出,将来从 CRM 持续不断的迁移功能到 S4, 底层仍然基于这套框架。
我个人觉得 One Order 最大的亮点就在于 extensibility,框架里留了整齐的能够自描述的 hook, 客户和 partners 不需要了解 One Order 的工作原理,只需要专注于这些 hook 的实现就行。一个 hook 就是一段业务逻辑的封装。SAP 最近几年搞的 Kyma, 里面提出的 lambda function 的概念,本质上就是 One order 里的 hook, 只不过后者可以通过微服务方式调用,而前者是 monolithic 系统内简单的函数调用。
要获取更多 Jerry 的原创文章,请关注公众号 ” 汪子熙 ”: