哈哈,轉載該篇文章主要用來自己睇傑,無他意,來源:http://www.riafan.com/default.asp
Flash 播放器使用AMF(Action Message Format),通过HTTP网络协议将客户端的请求发送Flash Remoting网关。因为应用服务器平台的不同, Flash Remoting在服务器端包含一系列不同的过滤器(filter)。当Flash Remoting网关接收到服务请求时,它首先将请求传到过滤器中,通过过滤器来序列化数据、记录日志、处理错误、进行安全验证。再根据服务名称,通过服务适配器(Service Adapter)调用相应的应用服务器端服务或Web Service。一旦应用服务器或Web Service能满足该请求,将返回一个执行成功的结果给Flash Remoting网关。Flash Remoting网关将数据反序列(deserialize)化为ActionScript对象,最后以AMF将数据返回给Flash应用程序。这里有几个重要的概念需要明确,先来看一看Flash Remoting网关。
- Flash Remoting网关
从本质上讲,Flash Remoting网关是一个中间件,它以本地服务的方式运行在ColdFusion MX服务器上,以Servlet的方式运行在Java服务器上,以程序集的方式运行在.NET服务器上,以PHP类的方式运行在PHP服务器上。如图下图所示。
Flash Remoting网关安装在服务器端,允当Flash 播放器与服务器通信的中介。执行网关的Flash Remoting 核心模块也称作服务适配器。它主要执行以下三个任务:
- 处理Flash 播放器向远程服务发出的请求, 这些服务可能来自的同一台服务器(Flash Remoting网关形式),也可能是Web Services形式的外部服务;
- 传送Flash 播放器向服务器端发出的请求和数据;
- 接收服务器响应,并将服务器返回的数据编译成本地ActionScript数据类型(native ActionScript datatypes)供Flash直接使用。
Flash 播放器与Flash Remoting网关通信是通过HTTP来完成的。这句话包含以下几层含义:
- 它们的通信是是请求驱动(request-driven)。这就是说,Flash 播放器只能直接与Flash Remoting网关通信。如果Flash 播放器不发出请求,服务器不能强行向Flash抛送数据。当然,可以使用ActionScript XMLSocket对象或Flash Media Server (FMS)来解决这一问题。
- HTTP是一种无状态协议,因此Flash 播放器每发出一个请求就要连接一次服务器。Flash Remoting网关利用cookies可以自动保持上发出一次请求时的状态。如果客户端禁止了cookies,还可以通过session来保持。
- 同HTTP紧密相关的SSL(加密套接字协议层), 对Flash Remoting也适用。如图下图所示。
使用HTTPS/SSL的Flash 播放器/Flash Remoting C/S架构与使用HTTP的Flash 播放器/Flash Remoting C/S架构类似,HTTPS允许利用SSL加密Flash 播放器/Flash Remoting通信,通过SSL连接将Flash影片发布到客户端,并且只有在上具备授权认证功能的(SSL-enabled)浏览器中才能播放。采用此协议的Flash程序与HTML程序一样安全,可以放心发布。