
1.1 简介
Web Dynpro是传统Dynpro编程方法在互联网时代的扩展;SAP为Web Dynpro提供了两种开发语言:ABAP和Java。于是就有了Web Dynpro for ABAP和Web Dynpro for Java。
Web Dynpro采用了一种高级的架构模式(MVC/Data Binding),并且提供了非常友好的编程接口,使得Web接口可以使用拖曳的方式进行开发。由于Web Dynpro运行于SAP NetWeaver平台,在该平台上传统Dynpro开发的优势也被展现得淋漓尽致。使用Web Dynpro可以非常迅速地开发出企业级的应用程序,开发者只需要关注其业务流程,而版本管理、质量控制、发布、性能等内容由NetWeaver平台帮助完成。
1.1.1 NetWeaver技术
1.什么是SAP NetWeaver
SAP NetWeaver是基于专业标准的集成化应用平台,能够大幅度降低系统整合的复杂性。其组件包括门户、应用服务器、商务智能解决方案以及系统整合和数据整合技术。
SAP NetWeaver及其独特的组织架构,实现了人员、信息和业务流程的集成。此外,SAP NetWeaver的设计实现了与Microsoft .NET和IBM WebSphere(J2EE)的全面互操作,可以管理不同基础设施从而降低复杂程度,也为客户削减总体成本提供了灵活性。
2.SAP NetWeaver:全面的集成和应用平台
SAP NetWeaver是全面的集成和应用平台,主要体现在以下几个方面。
1)人员集成:将现有的各种管理系统、办公系统、文档系统等集中到企业的信息门户内,实现企业IT系统的单一入口。
2)信息集成:将各种存放在数据库当中的管理信息以及分散在企业内部不同地方的非结构化信息(市场信息、报告等文档信息)集中起来,实现支持经营决策的信息仓库(BI)和知识管理系统。
3)流程集成:SAP的NetWeaver平台能够将分散在不同系统的业务处理连接起来,形成一个自动化的流程。对于使用者来说,就好像是在同一套系统上操作。
4)平台集成:SAP提供的是支持开放标准(如XML)的底层架构,可以实现灵活的相互连接。
3.11大功能应用
SAP NetWeaver的11大功能应用概括如下。
1)门户架构:提供给员工统一的、人格化的、基于各自角色的、进入不同IT环境的接入口;提高客户、供应商、合作伙伴和雇员的商业处理流程的效率。
2)协同:促进团队、集群之间和之内的动态的、有效的交流;包括虚拟的协作空间以及实时协作工具,如新闻、聊天、团队日历、应用软件共享以及文件保存等。
3)多渠道通路:允许使用移动设备和声音系统进入企业系统,使得企业可以将其业务处理流程扩展到任何商业到达的范围。
4)知识管理:管理以及发布非结构化的信息,如:文本文件,幻灯片和音频文件等。为它们提供了包括综合搜索、内容管理、出版、分类等功能,以及针对第三方数据存储的一个开放的体系结构。
5)商业智能:帮助企业集成、分析并发布重要的商业信息;包括一系列用于创建、出版客户定制的对话报表和申请的工具等,这些在很多时候对企业做出决策都有很大的帮助。
6)主数据管理:保证不同IT环境的商业网络中的各项信息的完整性;提供应用服务以整合、协调以及集中管理各种主数据,包括客户信息、产品主数据和技术资产信息等。
7)集成代理:促进来自不同源头的应用软件组件以XML和SOAP的方式进行交流;它定义了软件组件、接口、转换表和基于开放标准及内容的路由规则。
8)业务流程管理:允许在多变的IT环境中对其业务流程进行建模和操纵;允许将下层的各应用软件组合成高适应性的、端到端的、横跨整个价值链的新业务流程。
9)应用软件平台:提供一个支持J2EE和ABAP编程语言的统一程序环境;从现有的数据库和操作系统中独立出来,并完全支持独立于平台的网络服务和业务应用软件;提供一个标准的、开放的开发环境。
10)生命周期管理:为管理软件生命周期的所有阶段提供广泛的技术支持——从设计、开发、应用、实施到版本变换和测试等,覆盖所有阶段。
11)复合应用软件框架:为建立跨应用(xAPP)的复合应用软件提供开发环境;包含能帮助程序员和客户有效开发跨应用的复合应用软件的工具、方法论、规则和模板。
1.1.2 Web Dynpro技术
Web Dynpro是SAP提供的一种编程模型。Java和ABAP都可以使用这种编程模型(Web Dynpro for Java/ABAP),适用于通过声明的方式生成标准的用户界面,能够极大地提高开发Web应用程序的效率。
从技术角度来讲,Web Dynpro for Java/ABAP是SAP开发基于Web界面的一次革命。它完全不同于以前的开发模式,是ERP应用Web界面开发的一次飞跃。
Web Dynpro基于MVC规范,使用了声明性的编程技术。也就是说需指定在网页上要显示什么样的UI元素,设定好这些UI元素怎样取得数据,并在应用中声明可能的浏览路径。所有创建界面元素所需要的代码会自动生成,以便让程序员从重复的编码中解脱出来。
Web Dynpro for ABAP在NetWeaver 7.0之后开始应用。为了开发Web Dynpro的相关对象,SAP增强了Object Navigator(SE80)开发平台。
Web Dynpro支持结构化开发。Web Dynpro Component通过模块化把这些模块组合起来形成复杂的Web应用。
Web Dynpro是以声明的方式进行开发的。ABAP开发平台提供了一些工具并以其独特的方式来抽象地表示相应的应用,所有需要的代码便会被自动创建并符合Web Dynpro框架的标准。Web Dynpro框架允许程序员将自己的源代码放在自动生成的代码的指定位置。
所有的Web Dynpro应用都基于相同的逻辑单元。然后通过加入自己的编码,程序员就可以扩展这个框架来满足其他的业务需求。
不是在设计的时候就要决定所有的实施细节,可以在运行的时候动态决定界面的显示。这样就使程序员的应用变得非常灵活而不需要编写HTML或JavaScript代码。
Web Dynpro可以访问不同的数据源。所有可复用的部件都可以被调用(如Function或Methods),甚至通过Open SQL直接从数据库中取得数据。然而这样会导致程序逻辑和业务混淆,所以应当避免。
通过创建Web Service Client Object可以访问Web Service。
SAP Java Connector(JCo)可以调用Java Engine上的Enterprise Java Beans。Model Object在Web Dynpro for ABAP中还不被支持,最好的方式是通过封装业务逻辑的可复用的实体来创建包含源代码的类。也可以开发无窗体的Web Dynpro Components,其目的只是为了复用。这些Components可以以Component Usage的方式访问。
Web Dynpro的主要目的是在结构化设计的方式下,使开发人员以最少的代码能够开发功能强大的web应用。Web Dynpro的另一个目的是尽量减少手动输入代码。Web Dynpro通过下面两种方式来实现这一目标。
1)Web Dynpro使用声明性的中性语言元模型来定义用户界面。通过这种抽象的定义,开发环境自动生成所需的源代码。也可以手工输入代码用来操作数据,而不是定义用户界面。
2)Web Dynpro使用了MVC设计模式,具有支持国际化、弹性的、逻辑层和UI元素分离的技术特点。
由于去除了烦琐的UI编码,开发人员可以把精力集中到业务逻辑层面。Web Dynpro可以运行在不同的设备和网络环境中,这就很好地支持了场景间的协同。
注:如果读者对Java Web编程比较熟悉的话,就知道一个Web响应会有一个Request和Response的处理。Web Dynpro对这个处理又加了一些特有的内容,采用了类似Windows基于消息编程的一些方式,甚至引入了钩子函数。
Web Dynpro技术细分出一个新的概念:单一Request/Response循环或者称之为在不同阶段客户端触发的服务端循环(Server Round Trip)。这个技术也称作阶段模型(Phase Model),意思就是一个请求来的数据经过了若干处理阶段,用户可以在这些阶段编程,也比较类似于基于消息的编程。整个阶段模型是无状态的,也就是说所有在一个Request/Response循环被处理的对象,在这个循环完了以后不会被重复使用而是被释放的。这也符合在Servlet组件中Request/Response的处理原则,所有对象的生命周期与Request和Response是一致的,Web请求一旦完成,从属于这两个对象的数据都要被释放。
Web Dynpro在运行时,对于一个Web应用的新请求,总是要创建一套新的对象,这些对象的实例,在不同的阶段只被处理一次。如果出现错误,可以跳过单个阶段。无论在Request/Response循环过程中是否发生错误,即使程序员通过自己的应用来处理,方法WdDoPostProcessing()最后都会被调用。