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的应用服务器。(J2EE,SAP Basis,Web DynPro,Portal)
2.应用平台AP(Application Platform) NetWeaver + ESA。
NetWeaver虽然提供了技术平台,但是,要用他来实现一个企业的业务流程,还是件极其复杂的事。因此必须有离应用更近的平台,提供基础业务设施的封装。这就是所谓的AP。它是由SAP的ESA(Enterprise service architecture)来实现的。简单的说,NetWeaver加上ESA,就是AP,它提供了一个实现基础业务逻辑的平台。
3.业务流程平台BPP(Business Process Platform)
这是一个面向业务流程的平台。基础业务逻辑可以用AP实现,通常SAP已经提供大量基于SAP系统的业务逻辑。同时,第三方也可能提供业务逻辑。BPP的开发人员只需要使用BPP的开发环境(Visual composure)去组装这些业务逻辑。
SAP的开发解决方案
ABAP
ABAP方面的ABAP workbench是最早的SAP解决方案。通过ABAP workbench,开发人员可以实现ABAP的所有开发,并且,ABAP workbench是CS架构的,所有开发工作都必须在登录到Server上进行。这也使得ABAP的环境不是随便可以构建的。
另外,不要认为ABAP很神秘,充其量它只是一种语言而已。它历经面向过程和面向对象两个反展阶段,因此和c++一样,有面向过程方式遗留下的问题。但是,它是基于VM的。它不像C一样是通用语言,它是专门为商务设计的。
同时,也不要认为ABAP很土,所有java支持的特性它几乎都只持,所有java application server达到的功能ABAP stack都有,并且,同常都是先用ABAP实现再在Java上实现。 NetWeaver (JAVA)
NetWeaver的所有开发都通过NetWeaver Developer Studio。它是一个基于eclipse的强大开发环境,可以开发NetWeaver上的所有应用,包括j2ee application/service,portal application,webdynpro application,web service。可以远程管理server,deploy应用,远程调试。它比普通的eclipse要大很多,至少需要512M内存才可以顺利运行。 Design Studio
Design Studio是SAP的concept 设计工具。原本Design studio是Portal的可视化设计工具。现在SAP也用它来描述一般web application。用户可以非常快捷的用它设计和表现应用程序的UI。它不像Visual composure,不是开发工具,是纯粹的设计工具。因此它不能像Visual Composure一样生成代码,但是它可以自动生成PPT。这是为什么SAPR人人都能做异常漂亮的PPT :P Visual Composure: fontfont
这是有些类似Visio的设计和开发工具。Visual Composure本身只负责设计,独立于实现。也就是说,你可以用它来自动生成任何你想要的东西,只要你提供代码生成的逻辑。因此, Visual Composure和ESI结合,自然就是SAP的业务流程开发工具。值得一题的是,这种类型的工具是非常有意义的。它是未来开发模式的趋势。虽然SAP之前很多人,包括微软,IBM已经完成了类似产品,但是,和SOA结合的业务开发工具似乎还没有。 数据库设计解决方案
这是比较过时的话题。现在有很多方案,甚至是OR mapping。这里顺便提一下。SAP的解决方案就是著名DDIC (Data Dictionary information)。通过DDIC,用户定义数据结构,但是屏蔽了物理上的细节。这保证了DDIC实现的数据是跨平台跨数据库的。当然,同时它也限制了某些数据库特有的先进特性(但是我个人觉得,还是统一重要,特有的特性就像一些提高performance的方法一样,破坏了统一,将得不偿失)。 SAP的UI开发解决方案
WebDynpro Portal
SAP GUI:包括SAP GUI for windows 和SAP GUI for java。SAP GUI有悠久的历
史,它是R/3的重要产物。 Mobile UI。
另外值得一提的是基于WebDynpro的UI Pattern。这是一种封装程度更高的UI 设计模式。在WebDynpro中用户使用的是Controller(button,label,dropdown list,table),UI Pattern则是一种更高级更复杂的控件,它有可能不但包括UI,而且包括了逻辑和数据。 SAP的软件测试解决方案:
Unit Test:
ATS:Automatic Test System。由Web AS提供,可以用于模块测试。 Jver Junit ABAP Unit CheckMan
Portal Run time test studio:Portal 提供的单元测试工具; 集成功能测试
eCatt:用于创建基于UI的自动化的,可重用的功能测试用例。可以用于WebDynpro,ABAP,SAP GUI。
TestPartner:和eCatt一起用于为Webdynpro以外的WebApp和桌面应用程序创建自动化功能测试。 性能测试
SAT:Single Activity Trace。SAP Web AS提供的应用程序性能测试工具。 Jarm:Java application response monitor。SAP j2ee engine提供的性能测试工具。
SAP的软件开发流程解决方案:
SDLC:Software Development Lifecycle PIL:Product innovation lifecycle SAP的软件质量管理方案: SAP 针对软件质量制定了很多标准,在产品定义过程中指定产品必须符合那些标准,在产品的validation(就是Release前的第三方综合测试)中会被检查。比如Performance标准。如果产品被制定必须符合某个标准,则必须在Validation 时提供相应的性能测试手段或数据。如果结果不被接受,则可能不能release。SAP 的标准主要有:Accessibility,Usability,Performance,Data Archiving,Exception Handling,and so on...