Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2244368
  • 博文数量: 556
  • 博客积分: 11457
  • 博客等级: 上将
  • 技术积分: 5973
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-24 22:33
文章分类

全部博文(556)

文章存档

2013年(22)

2012年(74)

2011年(460)

分类: 系统运维

2011-03-16 15:39:43

BlazeDS是一组服务器端的通讯服务,它能够使得运行在浏览器的 Adobe Flex 应用程序服与服务器端的 Java 应用程序相互通信。

整个体系主要包括通道、端点、消息、服务、目的地、适配器等,把这 些搞懂也就差不多了。通道使得组件能够 和Blazeds服务端的端点通信,将请求送到目的地端点和通道是相互映射的

  • 基于消息的框架

         Blazeds使用基于消息的框架在客户端和服务端之 间发送和返回数据。

         Blazeds在它们之间使用了两个交换模式。第一个模式是请求响应模式,客户端发送请求给服务端处理。服务端返回处理结果给客户端。RPC Service就是使用这个模式。
       
第二个模式是发布—订阅模式,即服务端发布消息设置,客户端订阅了去接收它 们。Messaging Service使用这个模式将数据推给“感兴趣“的客户端。

  • Blazeds特征

 

如图,BlazeDS提供了三种关键的服务。

        Remoting Service。提供一种客户端直接调用服务器端java方法的方式。

        Message Service 。提供一种基于发布/订阅模式的消息服务,可以用于实现实时的数据推送或协作的flex应用。

          Proxy Service。通过proxy service,使得flex应用可以实现安全的,受限的跨域访问, 也 就是说它让您的Flex应用程序访问的服务可以处于不同的 域,而不需要在目标域里配置crossdomain.xml权 限文件。

  • Blazeds客户端结构

BlazeDS 客户端使用BlazeDS提供的基于消息的框架与服务器通讯。消息框架的客户端部分是ChannelsChannels封装了flex客户端与BlazeDS服务器的连接。

下 图是BlazeDS客户端的结构图

 

 

     Flex 通讯组件

        Flex提供了RemoteObjectHTTPServiceWebServiceProducerConsumer

        等可以与BlazeDS通讯的组件,这些组件都包含在了Flex SDK中,是Flex组件库的一部分。

    Channels Set

          Channels封装了Flex组件与BlazeDS服务之间的连接,是处于Flex组件之下的一个通讯层。

          BlazeDS提供了AMFChannelHTTPChannelFlex客户端可以使用不同类型的Channel与 服务器通讯。

          Channel是在services-config.xml中配置,下面是一个AMFChannel的配置:

              

                     

                      type=”mx.messaging.channels.AMFChannel”>

                             type=”flex.messaging.endpoints.AMFEndpoint”/>

                      

              

     amf协议Amt全称是action message format,它是一种二进制格式,专用于as和服务 器端通讯,比http通讯要快很多,支持多种数据类型,如java.net,php等。

  • Blazeds服务器端结构

          BlazeDS服务是一个J2EEweb容器,Flex客户端通过channel发送一个请求,请求在BlazeDS服务端会到达一个endpoint,从endpoint开始,请求会通过一条Java对象处理链,包括:MessageBroker, service, destination, adapter,结构如下:

 

 MessageBroker

     MessageBroker负责转发消息到service,接收到消息时,MessageBroker查看消息消息的destination,并把消息转发给目标service。如果destination有安全限制保护,在转发之前,MessageBroker会执行身份认证和授权检查。          MessageBroker的配置在BlazeDS应用的WEB-INF/flex/services-config.xml文件中

  Services destinations

     Services destinationsBlazeDS 服务中,是消息处理链的下一环节。

     BlazeDS 包括四种一一对应的services destinations:

          RemotingServiceRemotingDestination

          HTPProxyServiceHTTPProxyDestination

           MessageServiceMessageDestination

     不同的Flex组件的请求是由不同的Servicesdestinations进行 处理的,对应关系如下:

          HTTPService WebServiceHTTPProxyService/HTTPProxyDestination

          RemoteObject RemotingService/RemotingDestination

          Producer /ConsumerheMessageService/MessageDestination

     services destinations 可以在services-config.xml配置, 但是最好的做法是分别在下面的文件中进行配置:

          RemotingService remoting-config.xml 中配置

          HTTPProxyService the proxy-config.xml中配置

          MessageService messaging-config.xml 中配置

 Adapters

当 一个消息到达正确的destination时,destination会把消息发到相应的一个AdapterDestinationAdapter的对应关系如下:

     RemotingDestination使用JavaAdapter

     HTTPProxyDestination使用HTTPProxyAdapterSOAPAdapter

     MessageDestination使用ActionScriptAdapterJMSAdapter

  • 开始Blazeds

   下载Blazeds

   解压到tomcatwebapps目录下

   启动tomcat

   访问

  • 开发Blazeds应用

加入blazeds\WEB-INF\lib\下的jar

复制blazeds\WEB-INF\flex下的文件到项目的WEB-INF/flex目录下,包括:

        messaging-config.xml

        proxy-config.xml

        remoting-config.xml

        services-config.xml

web.xml文件中定义MessageBrokerServlet session listener

转自:http://caodaoxi.javaeye.com/blog/740978

阅读(1921) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~