《BlazeDS开发指南》学习笔记(一):概述

1、概述web

 

        BlazeDS是Adobe公司发布的免费开源产品,是该公司另外一个收费产品LCDS的简化开源版本,BlazeDS使用Java语言在服务端提供以下功能:数据库

 

  一、提供客户端(Flex、AIR)经过AMF协议访问服务端(Java)数据的功能;服务器

  二、提供服务端广播数据给多个客户端的功能;网络

  三、提供客户端与客户端实时通讯的功能;框架

 

  一个BlazeDS应用程序包括两个部分:客户端应用程序和服务端J2EE应用程序,以下图:异步

    客户端程序:一个BlazeDS应用的客户端程序通常为Flex或AIR,而Flex或AIR程序经过Flex SDK中的控件RemoteObject、HTTPService、Producer、Consumer与BlazeDS服务端通讯,另外,你也能够结合Flex、HTML和JavaScript技术来构建客户端程序,更能够在HTML和JavaScript中使用Ajax客户端库来与BlazeDS通讯。flex

 

  服务端程序:BlazeDS服务端运行在基于J2EE的Web服务器中,经过以下配置可使得一个J2EE Web服务器支持BlazeDS:加密

  一、拷贝BlazeDS的jar文件和相关依赖jar文件到WEB-INF/lib目录下;spa

  二、编辑WEB-INF/flex目录下BlazeDS的配置文件;翻译

  三、在WEB-INF/web.xml文件中定义MessageBrokerServlet和Session监听器;

   2、特色

 

  下图详细展现了BlazeDS的主要特色:

 一、RPC Services(RPC服务):RPC服务被设计成为调用和响应的模式,这对应用程序访问外部数据是一种很好的选择,它可以使客户端异步请求远程服务并直接把结果返回,在具体程序中,可使用客户端的RPC控件如HTTP GET或HTTP POST(HTTP Services)、SOAP(Web Services)、Java Objects(RemoteObject Services)访问RPC Services。

 

  若是你想经过使用RPC Services提供一些企业级功能,如不一样域之间数据交换的代理功能、客户端认证、服务器端日志、本地化支持、RPC Services服务集中化管理等功能时,BlazeDS经过使用RemoteObject控件能够轻松实现,而不须要配置他们像SOAP-compliant网络服务。

 

  当客户端RPC控件调用远程服务时,该控件就会把服务端返回的数据保存在一个ActionScript对象中,这样,在程序中就可以很轻松的获取该要的数据,而这些客户端控件包括HTTPService、WebService、RemoteObject控件。

 

  二、Messaging Services(消息服务):消息服务就是经过服务器端来回的传送消息以实现客户端的异步交流,一条消息由惟一标识号、BlazeDS头、其余自定义头和消息体组成。

 

  客户端程序中发送消息的部分称为消息生产者(producers),在Flex程序中能够经过Producer控件定义,而接收消息的部分称为消息消费者(consumer),在Flex中能够经过Consumer控件定义,Consumer控件负责订阅和接收服务器端某一个目的地的消息,而Producer控件负责向该目的地发送消息。

 

  消息服务同时也支持经过JMSAdapter实现的桥接模式来访问外部的JMS服务器,这使得Flex程序可以与外部的Java应用程序实现数据交流。

 

  三、Service adapters:BlazeDS能够访问各类不一样的数据持久化方案,好比数据库、JMS等其余持久化机制。

 

  四、The message-based framework(基于消息的框架):BlazeDS在客户端和服务器端来回的传送数据,他是一个基于消息的框架,主要运用了两种交换模式,第一种,请求/响应模式,客户端发送请求给服务端,服务端处理好以后返回一个包含结果的响应,RPC服务就是使用的这种模式;第二种,发布/订阅模式,服务端将数据发布给订阅了该消息的客户端列表,消息服务就是使用这种模式来发布数据给各客户端的,同时,消息服务也使用请求/响应模式来解决一些发布消息、数据交换等问题。

 

  五、Channels and endpoints(通道和端点):在网络上,客户端是经过通道与服务端传送数据的,通道负责封装消息格式、网络协议、解析方式、目的和应用代码,负责格式化和翻译消息为特定网络下的模式,而后分发给相应的端点。另外,通道使得客户端发送给服务端的消息变得有序性和对应性,这对数据传送的一致性和可预见性起到重要的做用。

 

  在服务器端,通道是与基于Java的端点发生交换的,端点负责解析消息成特定的协议模式,而后把它传送给普通Java形式的“消息代理人”(Message Broker),最终由消息代理人决定该消息发往何处,路由给恰当的目的地,详细以下图所示:

六、Channel types(通道类型):BlazeDS提供如下几种通道:(1)标准AMF通道;(2)加密AMF通道;(3)HTTP通道(AMFX)。其中AMF和HTTP通道都支持无轮询的请求/响应模式和客户端轮询模式(模拟实时通讯),而AMF和HTTP流通道模式提供了真正的数据流实时模式。

相关文章
相关标签/搜索