SAP ABAP和Salesforce APEX
(1)SAP ABAP
一、R/1时代
1969年,IBM宣布硬件产品、软件产品、技术服务三者独立计价。
1972年,五名前IBM德国公司员工辞职,创办了SAP。
创办之前他们早就找好了一个客户:英国帝国化学公司德国分部。那里有钱、有需求、还有大型计算机。
1972年,那是什么年月?
UI:字符命令行界面(人类第一个商用的图形UI是1983年苹果公司推出的Lisa个人电脑)
商业应用开发语言:COBOL、Fortran(C语言也是跟随Unix在1974年发布)
数据库:IBM层次数据库(1970年IBM的研究院Codd才发表关系数据库论文,1979年Oracle才发布第一个基于SQL的商业关系数据库产品)
操作系统:OS/360(Unix是1974年才发布)
服务器:IBM大型主机System/360
所以你想想当时想开发企业应用,想做大量的数据统计分析那得多难。
1976年,R/1产品研发基本成熟。SAP成立了一家销售与支持子公司:SAP GmbH System。把产品研发和产品服务分离。
二、R/2时代
1979年,SAP准备着手开发R/2,希望是:
最大的应用集成:财务、资产会计、采购管理、库存管理、发票管理、销售与分销
最新的前沿技术:对话控制系统、C语言、关系型数据库、Unix操作系统
1981年,SAP R/2开发成功。
但是,R/2多了一个新的技术,是SAP自己发明的,那就是:ABAP。就是为了做统计报表用的。想想当时没有可视化UI界面,做一个统计报表多难。
而且,SAP也意识到:客户把数据通过R/2输入进去了,那么后续的最大的需求就是出查询和报表。而每个公司的报表需求又都不一样,这是每个客户个性化需求最多的地方。
所以SAP在R/2时代又做了一个商业模式变革,那就是:产品研发和定制开发分离。定制开发主要集中在报表,那就用难度比较低的ABAP商业应用语言来搞。SAP继续坚持产品研发,把定制开发、销售甩出去给合作伙伴。
三、R/3时代
1990年,Gartner从概念、功能特性、技术特性三个方面定义了ERP理论。
1992年,R/3软件推出。离1994年网景公司创业就差2年,离1995年亚马逊、Ebay、雅虎创立就差3年。而且,离1995年Java语言发布也有3年时间。
R/3是世界上第一套符合Gartner ERP定义的ERP软件,而且应用了世界上最先进的技术:
UI:SAP自己研发了跨计算机的图形UI界面,这样在Mac和Windows上看到的SAP ERP是一致体验的
开发语言:SAP自己研发的ABAP。SAP ERP需要运行在各个服务器和各个操作系统上,而且还能简化商业应用开发的语言。当时C又难写应用程序,COBOL和Fortran又有局限,Java还没产生,SAP只能自己写一个商业应用开发语言。
数据库:支持DB2,也支持Oracle。所以ABAP必须封装数据库操作的API。
操作系统:支持IBM AIX、HP-UX、微软Windows NT...。
而且,在R/3时代,SAP又改变了一次商业模式。1993年,SAP正式进入美国市场,在加州设立研发中心。SAP把IT咨询服务、集成解决方案、IT实施服务交给了埃森哲。从此,SAP继续坚持做产品研发,把销售、咨询、实施、集成、定制开发都放给了合作伙伴。
(2)Salesforce APEX
Salesforce 创办于1999年3月。再过一年,互联网第一次泡沫就要破裂了。Amazon、雅虎都已经于1997年成功上市了。
Salesforce 一创业,就是像一个电子商务网站一样是公共访问的,可以注册试用,可以绑定信用卡购买(和亚马逊电子商务购物一样),可以多租户使用(和亚马逊电子商务购物一样),可以BBS问答。
Salesforce 一创业,用的技术就是最前沿的:Java开发语言、WebService API、Oracle数据库。
Salesforce 2004年上市。2004年,Salesforce 也开始全球化发展:进军亚太市场,第一站就是日本。做的第一个客户就是:日本邮政。
日本是典型的东方儒家文化国家,过去的企业信息化也主要是类似NEC、富士通这样的公司派遣贴身驻场、定制开发、全权服务。Salesforce 这种公有、多租户、标准产品怎么能满足日本客户呢?
虽然Salesforce 从一开始就想到了多租户不同客户的需求,所以搞了一整套BPM工具,从数据对象可自定义、流程可自定义、UI可配置可自定义都有。但是这样仍然满足不了日本企业的诉求。他们要深度定制开发,他们要和他们现在的本地安装系统深度集成。
于是,Salesforce 就搞了一整套扩展开发平台:
1、UI可编程:VisualForce。每个UI元素都有很多属性、很多事件。现在这套升级到了Lighting这种多端适配轻应用UI技术上了。
2、逻辑可扩展:本来Salesforce的各个功能点用的就是WebService API技术,所以需要一套开发语言方便简单调用这些Open API。而且这套开发语言得受管控,不能让它搞超过Salesforce 应用边界的事情。毕竟Salesforce 是多租户的,若干个租户是共用一个服务器(CPU/内存/磁盘文件/操作系统)、一套数据库的。所以,Salesforce 的研发人员就把自己用的Java语言做了一个功能受限的阉割版本,这就是APEX。AP代表Application,EX代表Extend,扩展的意思。
3、API开放平台:Open ID统一身份、Open API管理平台、Connect数据集成。2018年,Salesforce 还并购了MuleSoft,用于互联网电子商务、其他SaaS的各种集成连接
4、开发环境:2001年Eclipse被IBM开源且贡献,正好用来做IDE,进行编辑、跟踪、调试,这就是现在的Salesforce DX。2010年Salesforce 还并购了HeroKu,用于统一这些扩展应用的全生命周期管理:代码管理、测试、部署、日志、监控...。
5、应用商店:扩展应用模块可展示,可交易购买、计费。这就是现在的AppExchange。
(3)Oracle APEX
如果你一搜索APEX,你可能会搜索到两个APEX,一个是Salesforce 的APEX,一个是Oracle的APEX。
其实Oracle的APEX的产生也是产生在2004年的。现在已经版本进化到了20.2版本了。
Oracle APEX的本质是一套:快速构建多端统一轻应用的套件。其实,Oracle APEX和Salesforce 的Lighting Platform是一个定位。
它由四部分构成:
App Builder:前端应用构建工具。
SQL WorkShop:SQL编写调试
Team Development:团队协作、CI/CD
App Gallery:应用商店
Oracle APEX这套东西做数据输入Form、数据导入、做统计报表图表、做数据导出PDF/EXCEL、打印都比较方便。
其实,微软的PowerApp工具套件也是主要干这个事情的。
(4)小总结
SAP ABAP是早期为了解决跨服务器、跨操作系统、跨数据库、跨开发语言的问题。从2004年开始,SAP也支持Java开发了。虽然ABAP还是SAP ERP上的主力工具,那是因为过去20多年来,SAP和生态合作伙伴用ABAP都开发了大量模块,现在客户都还在运行呢。
Salesforce APEX,是为了允许客户搞深度扩展开发,但是又不能入侵其他租户的资源和信息,所以搞了APEX。
它们产生自己独特的商业应用编程语言都是有大背景的。
Oracle APEX、微软PowerApp、OutSystems都是多端适配轻应用快速开发工具。用的都是通用的前端开发技术,如HTML、CSS、JavaScript、JSON/XML..。并没有创造自己独特的商业应用编程语言。
以上这些工具,都需要专业开发人员使用。并不简单。
不过国内好奇怪,把低代码开发平台直接干到无代码工具了,而且希望用户或者用户的IT部门的人来操作。有来自OA、BPM工具厂商搞这个,有来自新协同工具如钉钉、企业微信工具厂商搞这个。还有一些过去搞多端适配前端技术的厂商因为低代码开发平台在国外投资的火热也都转了进来。
甚至大多数人傻傻分不清:
开发平台
开放平台
集成平台
配置平台
甚至还有国内厂商,明明是扩展配置平台,连一点代码都不能开发与调试,居然声称无代码开发语言。既然无代码,又何来开发语言呢?奇怪。