130 likes | 358 Views
第 18 章 PRC 服务. 本章介绍 Flex 数据服务( Flex Data Services 2 )包括 RPC 服务、数据管理和消息服务。从本章开始分别介绍这三方面内容。 PRC 服务给 Flex 应用提供了一种采用请求 / 应答方式的外部数据访问方法。通过 RPC 服务在 Flex 应用与服务器之间中实现了异步的数据传递。本章介绍 RPC ( Remote Procedure Call ,远程过程调用)服务。. 18.1 RPC 服务简介.
E N D
第18章 PRC服务 • 本章介绍Flex数据服务(Flex Data Services 2)包括RPC服务、数据管理和消息服务。从本章开始分别介绍这三方面内容。 • PRC服务给Flex应用提供了一种采用请求/应答方式的外部数据访问方法。通过RPC服务在Flex应用与服务器之间中实现了异步的数据传递。本章介绍RPC(Remote Procedure Call,远程过程调用)服务。
18.1 RPC服务简介 • 在Flex中,RPC服务充当着客户端和服务端交互的桥梁。本节首先简单概述Flex Data Services 2中的RPC服务,并对Flex RPC服务中的新性能进行介绍。着重讲述Flex Data Services 2中RPC服务组件。
18.1.1 RPC服务 • RPC服务即远程过程调用服务。在Flex中主要指的是客户端对服务端的对象和组件的调用,实现数据传输和数据操作。例如在对服务端数据库访问时,通常都通过RPC服务实现。 • 1.Flex Data Services 2的RPC服务新特性 • 在Flex Data Services 2中对RPC服务做了改进,带来一些新的特性。这些特性如下所示: • 引入信道(Channel)和接收点(Destination)。提高了RPC请求服务质量。每个信道在发送任何请求之前都会检查它是否可以和服务器成功通讯。其次,开发者可以为每个端点(Endpoint)定义多个信道,这使得配置更加灵活并在第一个信道不可用的情况下可以转到另一个。 • RPC服务支持集群环境,可以利用冗余的环境来提高服务的健壮性。 • 灵活的服务配置。定义服务的配置文件使开发者可以为服务添加和删除接收点、配置信道端点、设置安全性来控制服务访问等。 • 2.与Flex 1.5的不同
18.1.2 RPC服务组件 • RPC组件是Flex中用于进行远程访问的组件,它基于面向服务的体系架构。RPC组件使得Flex应用可以和服务端RPC服务进行交互,获得所需数据。 • 在一个应用中RPC组件将数据发送给一个或多个RPC服务,服务被执行后,将结果数据回送给发出请求的RPC组件。 • Flex RPC组件包括三种RPC服务:RemoteObject、WebServices和HTTPService。可以通过MXML或者ActionScript定义这三种RPC服务。RPC服务包含在Flex SDK和Flex Data Service 2中。 • 在Flex中,无论是在Flex SDK中,还是在Flex Data Service,都可以使用RPC组件。但是在Flex SDK中,不能使用RemoteObject组件。而且在Flex SDK不需要使用接收点等相关设置,如果要实现跨域访问,设置corossdomail.xml即可。由于在Flex SDK下,RPC组件功能单一,相比在Flex Data Service下使用RPC组件不仅功能丰富且使用方便。
18.1.3 RPC服务对数据的处理 • RPC服务对数据的处理与jsp、asp等是不同的。在RPC服务中数据的处理是分为客户端处理和服务器端处理,而其他的Web应用环境中数据通常都是由服务端来处理。这正是是RIA强调客户端处理能力,改善用户体验的体现。 • 与基于HTML模板的环境不同,Flex应用最终将会被编译成SWF文件传送到客户端。当Flex应用向外部服务发出请求,SWF文件是不需要重新编译的,并且任何页面也不需要刷新。
18.2 使用RPC组件 • Flex 2支持面向服务的体系架构。使用RPC组件向远程服务发送异步消息,远程服务被调用并执行,最后结果数据返回给客户端的调用组件。本节主要介绍如何使用RPC组件。
18.2.1 声明RPC组件 • 在Flex应用中可以使用MXML或者ActionScript声明RPC组件。在MXML中三种组件对应的标签分别是: • <mx:RemoteObject>:RemoteObject组件。 • <mx:HTTPService>:HTTPService组件。 • <mx:WebService>:WebService组件。 • 在ActionScript中RPC组件分别由以下三个类表示: • mx.rpc.remoting.RemoteObject:对应RemoteObject组件。 • mx.rpc.http.HTTPService:对应HTTPService组件。 • mx.rpc.soap.WebService:对应WebService组件。
18.2.2 调用RPC服务 • 调用RPC服务指的是通过向服务组件传递数据,调用组件的相应方法进行数据处理。与声明RPC服务组件一样,调用服务也使用MXML和ActionScript。Flex提供了两种服务调用方式:显式参数传递和参数绑定。 • 1.显式的参数传递 • 2.参数绑定方式调用RPC服务
18.2.3 服务结果处理 • 服务结果的处理是对远程调用返回结果的操作。RPC组件服务调用完成,服务返回的数据放置在lastResult对象当中。在Flex中对服务结果的处理有两种方式:一种是直接将结果处理为XML;另一种是将结果绑定到其他对象上。下面分别介绍这两中方法。 • 1.使用e4x格式将结果处理XML • 2.服务结果与其他对象的绑定
18.3 RPC服务配置 • RPC服务配置指的是服务接收点的配置。前面介绍了Flex应用客户端,通过使用MXML或者ActionScript声明RPC组件并调用RPC服务时,可以通过服务端接收点进行。RPC服务配置包括接收点、信道、安全、日志设置等。使用直接连接方式调用RPC服务,是不需使用接收点配置的。
18.3.1 接收点配置 • 在使用RemoteObject、基于proxy的WebService或HTTPService的应用程序中,需要配置服务接收点。接收点的配置指的是在Flex服务配置文件services-config.xml中设置接收点的信息。services-config.xml的一般结构如下: • <services-config> • <services> • <service-include file-path="remoting-service.xml" /> • <service-include file-path="proxy-service.xml" /> • </services> • <security /> • <channels /> • <clusters /> • <logging /> • <system /> • </services-config>
18.3.2 PRC服务的其他配置 • 除了接收点以外,RPC服务还需要其他配置,主要有通信信道、安全和日志的设置。 • 1.信道 :PRC服务使用任意多个信道端点来传输消息。 • 2.安全:安全设置主要是对服务接收点的访问控制。主要包括角色和授权等。在配置文件中对应的标签是<security>下的<security-constraint>。 • 3.日志:RPC服务配置中关于日志的配置使用的是Flex统一的日志系统。services-config.xml中的日志设置部分让开发者可以自定义日志级别并对特殊类别限制信息,对应的标签是<logging>。
18.3.3 Proxy服务的配置 • Proxy服务是用来保证安全的远程访问服务。与Proxy服务相关的RPC组件是HTTPService和WebService。Proxy服务中定义了HTTPService和WebService的Proxy信息。其中properties元素及其子元素是用来配置连接管理器、SSL自签发认证和外部代理。表描述了相关的XML元素。