blazeds学习笔记一整体认识

系统 2683 0

blazeds学习笔记一整体认识

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 提供的基于消息的框架与服务器通讯。消息框架的客户端部分是 Channels , Channels 封装了 flex 客户端与 BlazeDS 服务器的连接。

下 图是 BlazeDS 客户端的结构图

 

 

     Flex 通讯组件

        Flex 提供了 RemoteObject , HTTPService , WebService , Producer , Consumer

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

    Channels Set

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

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

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

                 <channels>

                         …

                        <channel-definition id=”samples-amf”  type=”mx.messaging.channels.AMFChannel”>

                               <endpoint url=”http://localhost:8400/myapp/messagebroker/amf”   type=”flex.messaging.endpoints.AMFEndpoint”/>

                          </channel-definition>

                 </channels>

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

  • Blazeds 服务器端结构

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

 

  MessageBroker

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

  Services 和 destinations

     Services 和 destinations 在 BlazeDS 服务中,是消息处理链的下一环节。

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

           RemotingService 和 RemotingDestination

           HTPProxyService 和 HTTPProxyDestination

             MessageService 和 MessageDestination

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

           HTTPService 和 WebService 与 HTTPProxyService/HTTPProxyDestination

           RemoteObject 和 RemotingService/RemotingDestination

           Producer /Consumerhe 和 MessageService/MessageDestination

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

           RemotingService 在 remoting-config.xml 中配置

           HTTPProxyService 在 the proxy-config.xml 中配置

           MessageService 在 messaging-config.xml 中配置

  Adapters

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

     RemotingDestination 使用 JavaAdapter

     HTTPProxyDestination 使用 HTTPProxyAdapter 或 SOAPAdapter

     MessageDestination 使用 ActionScriptAdapter 或 JMSAdapter

  • 开始 Blazeds

•    下载 Blazeds http://www.alisdn.com/wordpress/?paged=2

•    解压到 tomcat 的 webapps 目录下

•    启动 tomcat

•    访问 http://127.0.0.1:8080/ds-console/

  • 开发 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

blazeds学习笔记一整体认识


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】元

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论