zoukankan      html  css  js  c++  java
  • 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最显著的两个特点:

    也就是说,客户只需要新建一个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的原创文章,请关注公众号"汪子熙":

    更多阅读

  • 相关阅读:
    记一次ORACLE的UNDO表空间爆满分析过程
    ORACLE AWR报告数据的导入导出实践
    Linux 平台MySQL启动关闭方式总结
    ORACLE 查看RMAN的备份信息总结
    ORACLE AWR报告生成过程出现多个实例记录分析
    ORACLE 如何查看索引重建进度情况
    partproble在RHEL 6下无法更新分区信息
    Oracle行内链接不会引起USER_TABLES中CHAIN_CNT值变化
    Linux服务器宕机案例第二则
    ORA-00600: internal error code, arguments: [kcratr1_lastbwr], [], [], [], [], [], [], []
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/14033063.html
Copyright © 2011-2022 走看看