前言:
很早就想写一点关于SAP的技术方面的文章, 但是一直不得闲, 也不知道该从哪里下手. SAP除了OS几乎生产了所有软件和solution, 并且不断在适应和加入业界的新技术, 调整自己原有的技术, 所以用一个大的概念来概括SAP的架构是很难的, 这也是为什么SAP的诸多概念, 比如mySAP, NetWeaver, ESA, AP, TP, BPP等等, 经常让人confuse的原因. 这些概念, 都有他的核心思想, 或者说核心动力, 但是, 他们不是一个产品, 而是一个概念, 所以他们的边界是无法弄的很清楚的, 不可避免, 他们之间会有Overlap. 比如DataArchiving, 它是一项负责保存应用数据的技术, 最早是在ABAP上实现的, 但是在SAP J2EE中也有实现, 所以, 它既属于NetWeaver, 也属于mySAP. 无论是mySAP, 还是NetWeaver, 他们都不是代表一项技术, 而都是代表以一组概念为核心的一整套概念.
很早就想写一点关于SAP的技术方面的文章, 但是一直不得闲, 也不知道该从哪里下手. SAP除了OS几乎生产了所有软件和solution, 并且不断在适应和加入业界的新技术, 调整自己原有的技术, 所以用一个大的概念来概括SAP的架构是很难的, 这也是为什么SAP的诸多概念, 比如mySAP, NetWeaver, ESA, AP, TP, BPP等等, 经常让人confuse的原因. 这些概念, 都有他的核心思想, 或者说核心动力, 但是, 他们不是一个产品, 而是一个概念, 所以他们的边界是无法弄的很清楚的, 不可避免, 他们之间会有Overlap. 比如DataArchiving, 它是一项负责保存应用数据的技术, 最早是在ABAP上实现的, 但是在SAP J2EE中也有实现, 所以, 它既属于NetWeaver, 也属于mySAP. 无论是mySAP, 还是NetWeaver, 他们都不是代表一项技术, 而都是代表以一组概念为核心的一整套概念.
所以我想, 一个好的办法是从SAP的技术发展历史开始讲. 讲得不对请多指教.
SAP发展历史
1972年, 五名IBM的经理人和consultant(看来工程师是永远写程序的命)离开了IBM, 在德国曼海母创建了他们自己的公司, 这就是SAP(是德文系统,应用和数据处理产品的缩写. 德国公司的名字永远这么朴素直接). (2002年4月1日是SAP 30周年纪念日)
他们创建SAP的原因是, 当时他们发现自己的客户正在自行开发类似的程序来处理业务流程. 于是他们意识到他们可以提供可重用的标准化的系统, 来集成和实现用户的业务流程, 并且, 重要的一点是他们认为电脑现实器为普及作为业务流程的关键点. 当时没有微机, 计算机最多仅有500k内存. 有趣的是, 苹果公司于同年成立.
SAP的第一个产品是一个自动化财务和交易程序.命名RF, 就是后来的R/1. (值得敬佩的是, 他们的产品是利用晚上和周末开发出来的, 而我用了6年证明, 这几乎是不可能的 :P )
1976年, SAP 迁到现在的总部所在地Walldorf.
1979年, SAP推出用于大型机的R/2.
1988年, SAP在德国上市.
1992年, SAP推出了著名的R/3. 基于C/S 模式, 统一的图形界面, 兼容关系数据库, 可以运行在WindowsNT等多种*台和计算上等先进的特性, 使SAP成为世界领先的系统提供商.
但是, 至此SAP的所有应用都是独立的, 仅仅是client加上DataBase.
1996年, 随着互联网的迅猛发展, SAP推出了支持Internet的新版R/3 3.1
1998年, 退出全新CRM和SCM解决方案.
1999年, SAP 推出所谓的mySAP Business Suit. 这其实又是新版的R/3, 但是它的应用已经不是孤立的, 它支持全面的协同的的电子商务和ERP解决方案.
现在的SAP, 是员工超过30000, 实验室分布全球的世界第三大独立软件供应商. 提供超过21个行业,13个跨行业的解决方案, 拥有18000多家客户, 5000个系统安装点, 并已进入中小型企业市场. 技术上, SAP 有自己的商业开发语言(ABAP), 有自己的application Server, 自己的开发*台. SAP几乎可以提供除OS外所有基础软件和解决方案. 其实, netweaver或mySAP的概念对我们了解SAP的技术而言并不重要, 因为SAP的技术几乎概括一切, SAP的整个架构就是一个现代IT的领先技术架构的实现. 无论mySAP 还是NetWeaver, 还是AP/TP/BPP, 都是SAP为了适应更先进技术, 而发起的对SAP总体技术框架的改造运动.
通过mySAP, SAP 实现了更方便, 更容易沟通的系统框架, 通过NetWeaver04, SAP成功的把它以前的所有技术和业务逻辑通过和J2EE*台集成而开放出来. 通过NetWeaver05 和AP/BPP/TP/ESA, SAP实现更高程度的技术/业务分离(TP/AP), 更好的业务封装(AP), 更方便的顶层业务实现(BPP). R/3到底属于NetWeaver吗, 这个问题不重要, 可以属于也可以不属于, 你只要知道R/3的业务, 在新的web application 中可以依然被使用, 并且可以更好更漂亮更方便的被使用就可以了.
领先的*台提供者
SAP其实并不是现在才想做业务*台的领导者, 自他的ABAP出世, SAP一直就是世界最先进最主流的电子商务*台提供者. 只是现在, 特别是J2EE普及之后, 人们更多的认识到*台的重要性. SAP将围绕电子商业提供三种*台:
1. 技术*台 TP(Technical Platform)也就是所谓的NetWeaver.
它提供了所以技术基础设施. 他是J2EE的扩展, 它提供的内容远远超过J2EE的范畴. 他的架构同时也包括了基于ABAP vm 的应用服务器.
2. 应用*台 (AP)
NetWeaver虽然提供了技术*台, 但是, 要用他来实现一个企业的业务流程, 根本还是件极其复杂的事. 因此必须有离应用更*的*台, 提供基础业务设施的封装. 这就是所谓的AP (Application platform). 他是由SAP的ESA(Enterprise server architecture)来实现的. 简单的说, NetWeaver加上ESA, 就是AP, 他提供了一个实现基础业务逻辑的*台.
3. 业务流程*台(BPP)
这是一个面向业务流程的*台. 基础业务逻辑可以用AP实现, 通常SAP已经提供大量基于SAP系统的业务逻辑. 同时, 第三方也可能提供业务逻辑. BPP的开发人员只需要使用BPP的开发环境(Visual composure)去组装这些业务逻辑.
现在
下面我们分别来看每个概念
SAPBasis
应该是从R/3开始(有待考证), SAP的底层已经形成基于ABAP的一个应用*台. 有统一的数据设计方案(DDIC), 界面设计方案, 开发流程, 版本控制, 数据库连接, 进程管理, 共享内存管理, 事务管理等等.它为商务的应用的编写提供了可靠的技术支持.
简单的说R/3是一个基于ABAP虚机的,基于进程(进程间通过share memory通信)的, 基于数据库的,提供事物特性的简单应用服务器。这在当时,是极为先进的架构。也只有这种架构, 是的企业级的, 可灵活改造的,可高效管理的应用成为可能。
当NetWeaver出现后, SAPBasis被改造为NetWeaver中的ABAP Application server.
mySAP(mySAP.com)
1999年9月, CEO哈索.普拉特纳宣布以”开放和集成”为中心的mySAP.com的战略. 改造技术架构和方向, 统一和整合原有的系统, 推出mySAP协同化电子商务解决方案.
当时的背景是Internet 技术趋向成熟和普及. 独立的应用之间的交流和灵活性扩展性的问题显得异常突出。业界技术的发展使得开放接口,整合产品成为共识。因此SAP决定提供可剪裁的,高度集成和开放的系统。
主要手段为:
将R/3上的业务系统划分的更细更合理, 提供不同功能的组建和系统。数据类型是统一和跨系统的。SAP制定了一系列标准接口(如BAPI),让各种应用之间可以互相通信。开发Single Sign On 来简化Authentication等等。
这张图是当时定义的mySAP.COM
现在的mySAP Business Suit是一套协同化商务解决方案套件, 它包括:
mySAP CRM(Client Relationship Management)
mySAP SCM(Supply Chain Management)
mySAP PLM(Product Lifecycle Management)
mySAP SRM(Supplier Relationship Management)
mySAP ERP(Enterprise Resource Planning).
他们可以无缝的同其他系统集成.
mySAP ERP 又提供4套单独的解决方案:
mySAP ERP Financial
mySAP ERP Capital Management
mySAP ERP Operation
mySAP ERP Corporate Service.
下面这张图描绘了mySAP Business Suit的主要构件.
NetWeaver出现之前, mySAP的技术*台应该是SAPBasis.
如今的mySAP, 已经是基于NetWeaver了, 因为SAPBasis已经被改造为NetWeaver的一部分。NetWeaver是SAP的新一代技术*台.