转:

SAP Spartacus简介

终于写到Jerry目前正在做的开发任务了。

2015年的时候,那时Jerry已经做了一年多的SAP UI5开发,想进一步精进自己的开发技能,就申请了一个位于德国Walldorf总部的UI5 Extensibility开发的Fellowship Program,为期6个月。Jerry发了简历给接收Fellowship的团队老板,很快收到回复,团队老板对我的简历很感兴趣,但是表示这个Program没有Relocation Budget,如果我过去,在Walldorf的住宿得我自己掏钱解决。因为这不是商务出差,因此也不会有专门的同事帮我在当地租房。想到这一系列的麻烦,最后我只能放弃。

没想到五年之后,我再次获得了另一个纯前端的开发机会,SAP Spartacus.

什么是Spartacus?Spartacus是SAP Commerce Cloud的Storefront(电商铺面)应用,基于Angular开发而成。

借助SPA(Single-Page-Application)和PWA(Progressive-Web-Application)特性的支持,Spartacus能够提供近似原生应用的用户体验,同时具备高度的可配置性和可扩展性。

先看看Spartacus长什么样。对于国内习惯了网购的朋友来说,无需任何培训就能毫无困难地使用Spartacus进行购物下单,这些操作流程我们已经熟悉得不能再熟悉了。


浏览商品,添加到购物车,支付。

可能大家会觉得上面截图的界面比较朴素,不够美观?前面已经提到,Spartacus具有高度的可配置型和可扩展性,SAP客户可以基于Spartacus开发出具有自己独一无二风格的Storefront应用。

一个成功案例就是,乐高的在线销售Storefront.



Spartacus最显著的两个特点:

  • 开源(https://github.com/SAP/sparta...
  • 以库文件的形式发布

也就是说,客户只需要新建一个Angular应用,在package.json里添加对SAP Spartacus库文件的依赖,就可以使用上图所示的Spartacus Core和UI Component,开发满足自己实际需求的Storefront了。

下图就是Angular应用中的package.json文件中导入Spartacus的四个依赖库文件的方式:

客户采用这种方式开发而成的Storefront应用,其自开发代码(下图淡黄色矩形框所示)是升级安全的,即自开发代码不会因为Spartacus库文件的版本升级而被覆盖掉。

Spartacus是一个仍在持续开发的项目,目前最新的版本是3.0. 通常情况下,每隔6个月会进行Major版本的更新,比如从2.0到3.0. 每隔6周,会进行Minor版本的更新,比如从2.0到2.1.

对SAP Commerce Cloud有所了解的朋友们都知道,Hybris以前还有一个基于JSP的Accelerator,也能提供浏览店铺商品,加入购物车,结帐支付的功能,那么为什么SAP仍然会启动Spartacus的开发,并在2019年7月正式发布了1.0版本呢?

我的同事张健(Zhang Jonathan)在他的文章 从产品展示页面谈谈Hybris的特有概念和设计结构 里给大家介绍过,Commerce Cloud的前身Hybris是一个monolithic(单体)应用,其中Storefront即Accelerator实现的技术栈是JSP + Java,没有前后端分离的概念。

Accelerator虽然如张健文章里介绍的那样,具有高度可扩展性,但是也存在一些问题:

因为monolithic(单体)应用的特性,Accelerator本身也是Commerce平台的一部分,通过Java调用经Facade Layer作为入口,消费Service Layer的服务:

如下图高亮代码所示:

因此,Accelerator和Commerce平台无法分别进行升级。

另外,SAP官网明确指出,因为SAP以源代码的方式发布Accelerator,作为实施的模板,因此一旦客户开始了Storefront的定制化工作,修改了这些模板的源代码后,就无法再导入针对当前工作版本的Accelerator的bug fix. 这个道理同ABAP Netweaver里面,如果开发人员直接修改了标准代码后,打不了SAP note是一样的。

这也就是SAP官网上称Accelerator为"Extendable but not Upgradable"的原因。

Commerce Accelerator的这些不足,通过2019年诞生的Spartacus Storefront得到了弥补:

100% API-Driven

Spartacus和Commerce后台的所有交互均通过API完成,Commerce API endpoint通过环境变量SPARTACUS_BASE_URL注入Spartacus,如下图所示:

Focused Development

使用Spartacus,SAP Commerce Storefront开发人员只需要专注于Angular开发。前后端分离之后,Storefront的开发,不再需要Accelerator时代的全栈开发模式。

Continious Delivery

以周为单位的patch发布频率,使得持续交付成为可能。同时,客户通过导入Spartacus库文件的方式进行Storefront的二次开发,其定制化代码和Spartacus库文件是独立的实体,可以分别进行升级;Spartacus和SAP Commerce可以分别进行部署,亦可进行各自的升级。

更多关于SAP Spartacus的介绍,请参考openSAP上的公开课.

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

更多阅读

  • 从产品展示页面谈谈Hybris的特有概念和设计结构
  • 从产品展示页面谈谈Hybris系列之二: DTO, Converter和Populator
  • 从产品展示页面谈谈Hybris系列之三:Hybris Service层介绍

转:

SAP Spartacus简介

SAP Spartacus简介的更多相关文章

  1. SAP Gateway简介

    SAP Gateway在S4/HANA时代的ABAP开发模型中有着重要的地位.SAP Gateway是什么?它对ABAP开发有怎样的影响?可以为我们提供哪些方便?这篇译文将浅要地讨论这些话题. SAP ...

  2. SAP MDM 简介 --- MDM 实施方法论 - 企业的SOA 数据总线基础

    SAP NetWeaver Master Data Management (MDM) ,SAP NetWeaver 主数据管理,MDM可以进行数据合并,降低数据维护成本,确保跨系统的数据一致性,加快业 ...

  3. SAP APO - 简介

    SAP高级计划和优化(SAP APO)是SAP SCM中的关键模块之一,在供应链流程中控制供应网络计划,备件计划,TP / VS和需求计划. 它可以帮助组织在动态环境中管理其供应链流程. SAP AP ...

  4. 使用WBI SAP Adapter 实现IDoc的同步处理(转)

    1. 应用背景 某汽车制造企业(以下称为厂商A)与其仓储系统提供商(以下称为厂商B)需要进行数据交换.汽车厂商A使用SAP系统作ERP管理,所有数据都要进入SAP进行处理,仓储系统提供商使用的是自有的 ...

  5. SAP中的BOPF(Business Object Processing Framework)

    希望简化你的业务应用开发过程?业务对象处理框架(Business Object Processing Framework,以下简称BOPF)也许可以帮到你. BOPF是SAP Business Sui ...

  6. SAP BPC方案介绍

    refer to http://sapper.blog.sohu.com/166039991.html SAP/BPC简介: 全面预算管理是联系公司战略目标与日常运营的重要纽带,它上到战略层面.下到执 ...

  7. WDA-BOPF业务对象处理框架

    SAP中的BOPF(Business Object Processing Framework) 正文 希望简化你的业务应用开发过程?业务对象处理框架(Business Object Processin ...

  8. SAP NetWeaver Business Client (NWBC) 简介

    1.NWBC 简介 SAP NetWeaver Business Client (NWBC) 是新一代SAP用户界面,集成了SAPGUI事务和新的web dynpro应用,类似于桌面应用程序. SAP ...

  9. SAP-ABAP系列 第一篇SAP简介

    第一篇 SAP简介 SAP全名为System Application and Products in Data Processing.SAP目前是全世界排名第一的RP软件,号称“全球最大的企业管理解决 ...

随机推荐

  1. 【bzoj 1190】梦幻岛宝珠(DP)

    这题是在01背包问题的基础上,扩充了重量,需要用时间换空间. 思路: 1.仔细看题,注意到重量wi为a*2^b(a<=10,b<=30),很容易想到要按 b 分开做背包的DP.接下来的重点 ...

  2. poj 1410 (没做出来,记得闲着没事看看这道题)

    听说这道题是个大大的坑题 结果wa了十多发,,,,还是没找到原因 #include<cstdio> #include<cmath> #include<algorithm& ...

  3. hdu2126 Buy the souvenirs

    Problem Description When the winter holiday comes, a lot of people will have a trip. Generally, ther ...

  4. 洛谷-P1434 [SHOI2002]滑雪 (记忆化搜索)

    题意:有一个\(R*C\)的矩阵,可以从矩阵中的任意一个数开始,每次都可以向上下左右选一个比当前位置小的数走,求走到\(1\)的最长路径长度. 题解:这题很明显看到就知道是dfs,但是直接爆搜会TLE ...

  5. Linux-压缩/解压缩命令

    目录 Linux系统中常见的压缩包格式 gzip 压缩命令 zip 压缩命令 tar 压缩命令(归档) Linux系统中常见的压缩包格式 格式 压缩工具 .zip zip压缩工具 .gz gzip压缩 ...

  6. ajax和comet

    一,XMLHttpRequest对象 IE5是最早引入XHR对象的浏览器,XHR对象是通过MSXML库中的一个ActiveX对象实现的 使用MSXML库中的XHR对象,编写一个函数如下 functio ...

  7. javascript输出数据到文件

    function export(name, data) { var urlObject = window.URL || window.webkitURL || window var export_bl ...

  8. mssql 2005安装

    SQL Server 2005详细安装过程及配置   说明:个人感觉SQL Server 2005是目前所有的SQL Server版本当中最好用的一个版本了,原因就是这个版本比起其它版本来说要安装简单 ...

  9. Linux 驱动框架---设备文件devfs

    设备文件系统 Linux引入了虚拟文件系统,从而使设备的访问可以像访问普通文件系统一样.因此在内核中描述打开文件的数据inode中的rdev成员用来记录设备文件对应到的设备号.设备文件也由一个对应的f ...

  10. fibonacci number & fibonacci sequence

    fibonacci number & fibonacci sequence https://www.mathsisfun.com/numbers/fibonacci-sequence.html ...