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工具廠商搞這個,有來自新協同工具如釘釘、企業微信工具廠商搞這個。還有一些過去搞多端適配前端技術的廠商因為低代碼開發平臺在國外投資的火熱也都轉了進來。
甚至大多數人傻傻分不清:
- 開發平臺
- 開放平臺
- 集成平臺
- 配置平臺
甚至還有國內廠商,明明是擴展配置平臺,連一點代碼都不能開發與調試,居然聲稱無代碼開發語言。既然無代碼,又何來開發語言呢?奇怪。