2.3 Web应用编程模型
Web应用是这样的应用系统,它利用Web客户(如Web浏览器)、Web服务器和标准的Internet协议。通常,Web应用也能利用来自外部非Web服务的应用系统和数据。Web应用编程模型定义了Web应用拓扑结构以及使用框架提供的服务来设计Web应用的模型。
图2-3:Web应用的拓扑结构
图2-3显示了Web应用的拓扑结构(包括主要的元素)。值得注意的是,Web应用服务器和外部服务是不同逻辑层,它们可能运行在同一台机器上。另外,Web应用服务器的功能可能分散在多台机器上。通常,一个Web应用中的前端和业务逻辑部分运行在不同的机器上。Web应用的拓扑结构包含的元素有客户、Web应用服务器、基础设施服务和外部服务。
1. 客户
客户使用Internet技术标准(如TCP/IP、HTTP、HTML和XML)与Web应用服务器通信来存取业务逻辑和数据。客户端的基本功能是接受并验证用户输入,显示从Web应用服务器到用户的返回结果。客户可以是Internet 、Intranet(内部网)和Extranet(外部网)中的客户。Web应用编程模型的重要准则之一是Web应用的商务逻辑总是运行在服务端而不是在客户端。其优点如下:
1) 支持更广泛的客户端设备
2) Web应用服务器能集成对资源(如数据库)的存取,从而简化应用的设计,增强可伸缩性,并提供对资源的更好保护。
3) 运行在服务端的商务逻辑容易得到保护、更新和维护。
4) 运行在服务端的商务逻辑使得用户的应用环境得到集中管理并能在不同的客户机上重建。
2. Web应用服务器
Web应用服务器是 Web应用拓扑结构的核心,它为Web应用提供了广泛的程序设计、数据存取和应用集成等服务。我们可以把一个Web应用看作一个客户与Web站点之间一系列的交互作用。整个交互过程从显示在Web浏览器中一个页面开始。用户单击该页面上的一个按钮或链接就产生一个请求,该请求被送到Web应用服务器。Web应用服务器对这个请求进行处理,产生新的页面,并送回到客户端。在Web浏览器中显示的新页面就是这一次请求的结果,可能也是下一次请求的开始。所以说,Web应用包含了一组交互或处理步骤,每一步必须产生一个页面形式的响应,这个页面作为后继交互作用的入口。
图2-4:Web应用的交互模型
深究单个交互的细节,不难发现这里有三个共用的处理要求,包括业务逻辑层、用户界面层和交互控制器层(参见图2-4)。具体来讲:
1) 业务逻辑层。记录并处理用户输入的部分。比如:对应于在购物篮中添加一项商品的数据库更新操作,或从一个银行帐户到另一个的资金转帐操作。
2) 用户界面层。构造HTML页面的部分。构造出来的页面将被送回给用户,它决定了交互结果的显示形式和风格。
3) 交互控制器层。控制其它元素的部分。处理HTTP请求,从业务逻辑层选择要运行的组件,根据业务逻辑的运行结果从用户界面层选择相应的组件,以构造响应页面。
这三层正好对应到经典的M/V/C(Model/View/Controller,模型/视图/控制器)范例。这一点很重要,因为不同层通常需要不同的开发技术和工具。应用框架为各层提供使用各种组件的支持,这些组件之间有一个良定的接口。
3. 基础设施服务
除了上述程序设计机制, 应用开发者还需要运行时刻的服务来支撑Web应用。方便地定位应用组件、保证它们的可用性以及对它们安全的存取和执行等等都是在Internet、Intranet和Extranet环境中实施Web应用的关键要素。基础设施服务为支持Web应用提供下列设施:
1) 目录服务,本框架支持使用JNDI来存取基于LDAP协议的安全目录服务。
2) 认证授权,这个设施能产生用来鉴别用户和服务器的证书。公开密钥技术已经成为电子商务首选的可信赖的机制,而认证授权是公开密钥技术中的一个关键部分,它提供了数据保密、数据完整性、签名验证和用户鉴别等特性。
3) 防火墙,它作为可信赖的内部网络和不可信赖的外部网络之间的一个接口。通常,防火墙使用报文过滤器根据报文的源地址、宿地址、和服务类别(即端口号)来过滤报文流。使用防火墙来控制外部网络中的那些(IP级)能允许存取内部网络、能使用那种类别的应用服务;同样的模式能控制内部网络对外部网络的存取。
4) 代理服务器,它起到为多个浏览器检索Internet上数据的作用。作为客户和Web应用服务器之间的一个管道,代理服务器将客户的请求递交给有关的服务器并把服务器的响应返回给客户。这种工作方式还可以提供附加功能,如地址安全性和缓冲功能。
4. 外部服务
在这些外部服务系统中驻留着企业已有的应用和数据、以及商业伙伴的服务系统,如支付服务和外部信息服务。通常,这些应用和服务系统控制着关键的商务过程,需要与Web服务器集成起来为顾客、业务伙伴和员工服务。
使用电子商务应用框架开发和部署电子商务应用系统带来下列优势:
1) 极大地方便电子商务应用系统的快速开发和部署。
2) 适应任何客户端设备。
3) 确保应用系统能移植到各种不同的服务器环境中。
4) 利用并扩展已有的信息技术资源。
这也是形成这个电子商务应用框架的重要原则
Web应用是这样的应用系统,它利用Web客户(如Web浏览器)、Web服务器和标准的Internet协议。通常,Web应用也能利用来自外部非Web服务的应用系统和数据。Web应用编程模型定义了Web应用拓扑结构以及使用框架提供的服务来设计Web应用的模型。
图2-3:Web应用的拓扑结构
图2-3显示了Web应用的拓扑结构(包括主要的元素)。值得注意的是,Web应用服务器和外部服务是不同逻辑层,它们可能运行在同一台机器上。另外,Web应用服务器的功能可能分散在多台机器上。通常,一个Web应用中的前端和业务逻辑部分运行在不同的机器上。Web应用的拓扑结构包含的元素有客户、Web应用服务器、基础设施服务和外部服务。
1. 客户
客户使用Internet技术标准(如TCP/IP、HTTP、HTML和XML)与Web应用服务器通信来存取业务逻辑和数据。客户端的基本功能是接受并验证用户输入,显示从Web应用服务器到用户的返回结果。客户可以是Internet 、Intranet(内部网)和Extranet(外部网)中的客户。Web应用编程模型的重要准则之一是Web应用的商务逻辑总是运行在服务端而不是在客户端。其优点如下:
1) 支持更广泛的客户端设备
2) Web应用服务器能集成对资源(如数据库)的存取,从而简化应用的设计,增强可伸缩性,并提供对资源的更好保护。
3) 运行在服务端的商务逻辑容易得到保护、更新和维护。
4) 运行在服务端的商务逻辑使得用户的应用环境得到集中管理并能在不同的客户机上重建。
2. Web应用服务器
Web应用服务器是 Web应用拓扑结构的核心,它为Web应用提供了广泛的程序设计、数据存取和应用集成等服务。我们可以把一个Web应用看作一个客户与Web站点之间一系列的交互作用。整个交互过程从显示在Web浏览器中一个页面开始。用户单击该页面上的一个按钮或链接就产生一个请求,该请求被送到Web应用服务器。Web应用服务器对这个请求进行处理,产生新的页面,并送回到客户端。在Web浏览器中显示的新页面就是这一次请求的结果,可能也是下一次请求的开始。所以说,Web应用包含了一组交互或处理步骤,每一步必须产生一个页面形式的响应,这个页面作为后继交互作用的入口。
图2-4:Web应用的交互模型
深究单个交互的细节,不难发现这里有三个共用的处理要求,包括业务逻辑层、用户界面层和交互控制器层(参见图2-4)。具体来讲:
1) 业务逻辑层。记录并处理用户输入的部分。比如:对应于在购物篮中添加一项商品的数据库更新操作,或从一个银行帐户到另一个的资金转帐操作。
2) 用户界面层。构造HTML页面的部分。构造出来的页面将被送回给用户,它决定了交互结果的显示形式和风格。
3) 交互控制器层。控制其它元素的部分。处理HTTP请求,从业务逻辑层选择要运行的组件,根据业务逻辑的运行结果从用户界面层选择相应的组件,以构造响应页面。
这三层正好对应到经典的M/V/C(Model/View/Controller,模型/视图/控制器)范例。这一点很重要,因为不同层通常需要不同的开发技术和工具。应用框架为各层提供使用各种组件的支持,这些组件之间有一个良定的接口。
3. 基础设施服务
除了上述程序设计机制, 应用开发者还需要运行时刻的服务来支撑Web应用。方便地定位应用组件、保证它们的可用性以及对它们安全的存取和执行等等都是在Internet、Intranet和Extranet环境中实施Web应用的关键要素。基础设施服务为支持Web应用提供下列设施:
1) 目录服务,本框架支持使用JNDI来存取基于LDAP协议的安全目录服务。
2) 认证授权,这个设施能产生用来鉴别用户和服务器的证书。公开密钥技术已经成为电子商务首选的可信赖的机制,而认证授权是公开密钥技术中的一个关键部分,它提供了数据保密、数据完整性、签名验证和用户鉴别等特性。
3) 防火墙,它作为可信赖的内部网络和不可信赖的外部网络之间的一个接口。通常,防火墙使用报文过滤器根据报文的源地址、宿地址、和服务类别(即端口号)来过滤报文流。使用防火墙来控制外部网络中的那些(IP级)能允许存取内部网络、能使用那种类别的应用服务;同样的模式能控制内部网络对外部网络的存取。
4) 代理服务器,它起到为多个浏览器检索Internet上数据的作用。作为客户和Web应用服务器之间的一个管道,代理服务器将客户的请求递交给有关的服务器并把服务器的响应返回给客户。这种工作方式还可以提供附加功能,如地址安全性和缓冲功能。
4. 外部服务
在这些外部服务系统中驻留着企业已有的应用和数据、以及商业伙伴的服务系统,如支付服务和外部信息服务。通常,这些应用和服务系统控制着关键的商务过程,需要与Web服务器集成起来为顾客、业务伙伴和员工服务。
使用电子商务应用框架开发和部署电子商务应用系统带来下列优势:
1) 极大地方便电子商务应用系统的快速开发和部署。
2) 适应任何客户端设备。
3) 确保应用系统能移植到各种不同的服务器环境中。
4) 利用并扩展已有的信息技术资源。
这也是形成这个电子商务应用框架的重要原则