Blazeds学习

BlazeDS是一个基于服务器的Java远程调用(remoting)和Web消息传递(messaging)技术,使得后台的Java应用程序和运行在浏览器上的Flex应用程序能够相互通信

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

 

(1)       客户端程序

①客户端简介:

BlazeDS 客户端程序通常是一个FlexAIR 应用程序。Flex AIR程序使用Flex 组件和BlazeDS 服务器通讯,包括RemoteObjectHTTPServiceWebServiceProducerConsumer组件,HTTPService WebService,ProducerConsumer 组件都是Flex SDK 的一部分

尽管通常使用Flex AIR 开发客户端程序,但也可联合使用FlexHTMLJavaScript技术。或者用HTMLJavaScript通过Ajax client libraryBlazeDS 通讯。

②客户端体系结构:

Blazeds使用一个基于消息的框架与服务端结合。这个框架使用通道封装了Flex程序和Blazeds服务端之间的连接。下面是Blazeds客户端的结构 


(2)       BlazeDS服务端

①    服务器端简介:

Blazeds服务运行在一个J2EE的应用服务器中。为你的J2EE Web程序配置Blazeds支持:
            1.
加入Blazeds和其他需要的jar
            2.
编辑WEB-INF/flex目录下的配置文件
            3.
web.xml文件中定义MessageBrokerServlet anda session listener

②    服务器端体系结构:

 

 服务就是一个包含J2EE Web应用程序的应用。Flex客户端通过通道发送请求到Blazeds服务的端点上。从端点开始,请求经过一些列的Java对象包括消息传播对象、服务对象、目标对象以及最终的适配器对象。适配器将请求实现为本地的、或者contacting a backendsystem或者远程服务例如JMS服务。下面展示了Blazeds服务体系

  

 

(3)       BlazeDS核心功能

BlazeDS 核心功能包括RPC ServicesMessaging Service

  Blazeds使用基于消息的框架在客户端和服务端之间发送和返回数据。Blazeds在它们之间使用了两个交换模式。第一个模式是请求---响应模式,客户端发送请求给服务端处理。服务端返回处理结果给客户端。RPC Service就是使用这个模式。
       
第二个模式是发布订阅模式,即服务端发布消息设置,客户端订阅了去接收它们。Messaging Service使用这个模式将数据推给感兴趣的客户端。Messaging Service同样使用求/响应模式来解决一些发布消息、数据交换等问题。

 

①  RPC Services

远程程序调用(RPC)服务是应用程序访问外部数据的比较好的方法,通过调用、返回的形式。RPC允许客户应用程序异步请求远程程序,处理请求后直接返回给客户端。你可以通过HTTP GET or POST (HTTPservices), SOAP (web services), 或者 Java objects(remoteobject services)RPC组件直接访问数据。

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

              当客户端RPC控件调用远程服务时。这个控件将返回的数据储存到一个ActionScript对象,你可以轻易的获得这些数据。注意:HTTP servicesweb services可以直接使用,不包括Blazeds,但是RemoteObject不能脱离Blazeds或者ColdFusion.

Messaging Service

消息服务允许客户端应用异步的直接发送消息到服务器以及返回。消息定义的格式是:一个唯一的标识,Blazeds头,其他自定义头,一个消息体。
               
客户端发送消息就是消息生产者(producers)。在Flex应用中通过使用Producer控件来定义一个producer。客户端接收消息就是消息消费者(consumer),使用Consumers组件。Consumer控件负责订阅和接收服务器端某一个目的地的消息,Producer控件发送消息到这个目的地。

(4)       BlazeDS的通道和端点

客户端使用通道发送消息给服务端。通道封装了消息的格式、网络格式、服务端解析方式、目的和应用代码。通道封装以及转换信息,并且传达他们到服务端的一个端点。

       通道同样使得发送和返回的消息变得有序。有序对保证数据传送的一致性和可预见性起到重要的作用       

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

 

  Blazeds包括几个特殊的通道,包括标准的和加密的AMF通道。HTTP(AMFX)通道。AMFHTTP通道都支持无轮询的请求/响应模式以及客户轮询模式来模拟实时通信,而AMFHTTP流通道模式提供了真正的数据流实时模式。

 

参考文献:      

 http://www.cnblogs.com/xia520pi/archive/2012/05/26/2519343.html

http://hi.baidu.com/prince_zyb/item/fc797bd65026d0856cce3f14

http://bhsc-happy.iteye.com/blog/320209

http://www.infoq.com/cn/articles/spring-blazeds-integration

http://blog.csdn.net/zyxnetxz/article/details/6737412

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值