-
BlazeDS
编辑
BlazeDS是一个基于
服务器的Java远程调用(
remoting)和Web消息传递(messaging)技术,使得后台的Java应用程序和运行在浏览器上的Flex应用程序能够相互通信。
中文名
-
BlazeDS
定 位
-
技术
基 础
-
Java远程调用
目 的
-
Flex
应用程序
如果你想通过使用RPC Services提供一些企业级功能,如不同域之间数据交换的代理功能、客户端认证、服务器端日志、本地化支持、RPC Services服务集中化管理等功能时,BlazeDS通过使用RemoteObject控件可以轻松实现,而不需要配置他们像SOAP-compliant网络服务。
当客户端
RPC控件调用
远程服务时,该控件就会把服务端返回的数据保存在一个
ActionScript对象中,这样,在程序中就能够很轻松的获取想要的数据,而这些客户端控件包括HTTPService、WebService、RemoteObject控件。
消息服务就是通过服务器端来回的传送消息以实现客户端的
异步交流,一条消息由唯一标识号、BlazeDS头、其他自定义头和消息体组成。
客户端程序中发送消息的部分称为消息生产者(producers),在Flex程序中可以通过Producer控件定义,而接收消息的部分称为消息消费者(
consumer),在Flex中可以通过
Consumer控件定义,Consumer控件负责订阅和接收服务器端某一个目的地的消息,而Producer控件负责向该目的地发送消息。
消息服务同时也支持通过JMSAdapter实现的
桥接模式来访问外部的JMS服务器,这使得Flex程序能够与外部的Java应用程序实现数据交流。
BlazeDS可以访问各种不同的
数据持久化方案,比如数据库、JMS等其他持久化机制。The message-based framework(基于消息的框架) BlazeDS在客户端和服务器端来回的传送数据,他是一个基于消息的框架,主要运用了两种
交换模式,第一种,请求/响应模式,客户端发送请求给服务端,服务端处理好之后返回一个包含结果的响应,RPC服务就是使用的这种模式;第二种,发布/订阅模式,服务端将数据发布给订阅了该消息的客户端列表,消息服务就是使用这种模式来发布数据给各客户端的,同时,消息服务也使用请求/响应模式来解决一些发布消息、数据交换等问题。
在网络上,客户端是通过通道与服务端传送数据的,通道负责封装消息格式、
网络协议、解析方式、目的和应用代码,负责格式化和翻译消息为特定网络下的模式,然后分发给相应的端点。另外,通道使得客户端发送给服务端的消息变得有序性和对应性,这对数据传送的一致性和可预见性起到重要的作用。
在服务器端,通道是与基于Java的端点发生交换的,端点负责解析消息成特定的协议模式,然后把它传送给普通Java形式的“消息代理人”(Message Broker),最终由消息代理人决定该消息发往何处,路由给恰当的目的地,
BlazeDS提供以下几种通道:
(1)标准AMF通道;
(2)加密AMF通道;
(3)HTTP通道(AMFX)。
其中AMF和HTTP通道都支持无
轮询的请求/响应模式和客户端轮询模式(模拟实时通信),而AMF和HTTP流通道模式提供了真正的数据流实时模式。
AMF(Action Message Format)是
ActionScript对象
序列化后的二进制流。用于Adobe Flash应用和远端服务的通讯。由于它是基于二进制的数据传输,所以相对于XML SOAP,json,WebService等基于字符串的数据格式,有数据体积小和效率高的特点。