构建Flex应用程序时,重要的是理解如何将数据传入和传出应用程序及远程过程调用(rpc)。在本文中,我将尝试介绍HTTPService、WebService和RemoteObject类及其用途。
按照W3C的定义,“web服务”是一个软件系统,设计用于通过网络支持可互操作的、机器对机器的交互。所有这三个类都支持此概念。
HTTPService
HTTPService是一个用来通过http载入来自任意url的数据的rpc类。它通常用于载入由一台web服务器提供的基于文本的文件(任意文本、XML、CSV等)。它们可以是静态文件或动态创建的文件,并将使用任何服务器端技术。您可以使用HTTPService类来访问restul web服务(不要和下面所述的web服务混淆)。
<mx:HTTPService
id="myHttpService"
url="http://myurl/myfile.xml"
result="resultHandler(event)"
fault="faultHandler(event)" />
您可以联机阅读有关HTTPService类的更多内容:
http://livedocs.adobe.com/flex/3/langref/mx/rpc/http/mxml/HTTPService.html
http://livedocs.adobe.com/flex/3/html/data_access_2.html#193905
WebService
WebService类是一个用于在Flex应用程序内访问基于WSDL的web服务的类。联机Flex文档很好地总结了它的作用:
Flex应用程序可以与一个WSDL(Web服务描述语言)1.1文档中定义服务接口的web服务进行交互,可以用作一个URL。WSDL是一种标准格式,它描述web服务所能理解的消息,它对那些消息的响应格式,web服务支持的协议,以及向哪里发送消息。Flex的web服务API通常支持SOAP(Simple Object Access Protocol,简单对象访问协议)1.1、XML Schema 1.0(1999、2000和2001版本)以及WSDL1.1 RPC-encoded、RPC-literal和document-literal(无封装的和封装的样式参数)。两种最常用的web服务类型使用RPC-encoded或document-literal SOAP绑定;术语“encoded(编码)”和“literal(原义)”表示一个服务所使用的WSDL到SOAP的映射类型。
<mx:WebService
id="myWebService"
wsdl="http://myserver/myservice.svc?wsdl'}" />
您可以联机阅读有关WebService类的更多内容:
http://livedocs.adobe.com/flex/3/html/data_access_3.html#193910
http://livedocs.adobe.com/flex/3/langref/mx/rpc/soap/mxml/WebService.html
RemoteObject
RemoteObject类用来处理Flex应用程序内的Flash Remoting rpc调用。在概念上,RemoteObject服务调用与web服务相同,但是使用AMF协议传输数据,一般来说,该协议比基于xml的web服务更紧凑并且解析更快(特别在使用大数据集时)。
<mx:RemoteObject
id="myRemoteObject"
destination="myDestination"/>
您可以联机阅读有关RemoteObject类的更多内容:
http://livedocs.adobe.com/flex/3/html/data_access_4.html#202412
http://livedocs.adobe.com/flex/3/langref/mx/rpc/remoting/mxml/RemoteObject.html
安全沙箱约束应用于所有这三种类,因此要确保了解安全约束并研究跨域策略。
英文原文:http://www.insideria.com/2009/04/flex-101-rpc-basics.html