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

  一、概述

 

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

 

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

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

  3、提供客户端与客户端实时通信的功能;

 

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

 

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

 

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

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

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

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

 

  二、特点

 

  下图详细展示了BlazeDS的主要特点:

 

   1、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控件。

 

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

 

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

 

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

 

  3、Service adapters:BlazeDS可以访问各种不同的数据持久化方案,比如数据库、JMS等其他持久化机制。

 

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

 

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

 

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值