blazeds学习笔记一整体认识

系统 1755 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条评论