`
robinsoncrusoe
  • 浏览: 752318 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

BlazeDS体系结构(二)

    博客分类:
  • JAVA
阅读更多
消息


Flex客户端组件和Blazeds服务端都是基于消息进行交流的,Flex组件使用几种消息和他们对应的服务交流。所有的消息有基于客户端的(ActionScript)和基于服务端(Java)的,因为这些消息分别在客户端和服务端序列化和反序列化。
        一些消息,比如应答消息和命令消息,使用不同的Flex组件和Blazeds服务。其他的消息类型使用特殊的Flex组件和Blazeds服务。例如消息生产者发送消息给消息消费者组件。
        其他情况下,你不可以直接写代码构造和发送消息。例如,你只是使用远程组件(RemoteObject)调用远程方法远。远程组件创建一个远程消息封装给远程对象调用。返回的消息封装在一个ResultEvent中。

Blazeds服务端体系


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



端点


        基于服务的端点是通过MessageBrokerServlet启动的,需要在web.xml中配置的。除此之外,HTTP session监听器也要加入到web程序的web.xml中。



<!-- MessageBroker Servlet -->

<servlet>

    <servlet-name>MessageBrokerServlet</servlet-name>//servlet名称

      <display-name>MessageBrokerServlet</display-name>

      <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>//servlet对应类

<init-param>  //初始化参数

        <param-name>services.configuration.file</param-name>  //参数名:services配置文件

        <param-value>/WEB-INF/flex/services-config.xml</param-value>//参数值:配置文件相对地址

  </init-param>

      <load-on-startup>1</load-on-startup>//启动后装载

</servlet>



*********************************************************

*在servlet的配置当中,<load-on-startup>1</load-on-startup>的含义是:

*标记容器是否在启动的时候就加载这个servlet。

*当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;

*当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。

*正数的值越小,启动该servlet的优先级越高。

*********************************************************



<!-- Http Flex Session attribute and binding listener support -->
<listener>
  <listener-class>flex.messaging.HttpFlexSession</listener-class>

</listener>


        客户端程序使用通道和Blazeds端点通信。端点和通道是相互映射的,保持端点和通道使用相同的消息格式是很重要的。如果通道使用AMF消息格式,比如AMFChannel,端点也必须AMF消息格式与之匹配,比如AMFEndpoint。


        你可以在WEB-INF/flex目录下的services-config.xml配置端点。

MessageBroker

         MessageBroker是为了将消息路由给服务端,是Blazeds在服务端的核心。在端点经过初步的处理请求并且将提炼出来的消息传递给MessageBroker。MessageBroker查看消息的目的地,然后将他传递过去。如果目的地有安全现在,他就在传递之前运行检查证明。

服务和目的地

        服务和目的地是消息在Blazeds服务中传递处理的下一站。系统包括4个服务以及他们对应的目的地:

        RemotingService(远程服务) 和 RemotingDestination(远程目的地)
        HTPProxyService(HTTP代理服务) and HTTPProxyDestination(HTTP代理目的地)
        MessageService(消息服务) and MessageDestination(消息目的地)

        服务是消息传递过来的目标,可以将目的地想象成服务的实例。例如,远程组件和远程服务通信中,你必须指定一个远程目标,例如你要调用的类的方法。这种客户端和服务端的映射是按照下面来实现的:

        HTTPService 和 WebService HTTPProxyService/HTTPProxyDestination通信

        RemoteObject和 RemotingService/RemotingDestination通信

        Producer、Consumer和 MessageService/MessageDestination通信

        你可以在sevices-confi.xml中配置服务和目的地,但是最好是将他们放进不同的文件:
                RemotingService配置在remoting-confi.xml
                HTTPProxyService配置在proxy-config.xml
                MessageService配置在messaging-config.xml


        适配器和”随机”的编译是消息处理链中的最后一环。当一个消息抵达正确的目的地以后,它就会被传递给适配器被实现成本地的或者后台系统或者一个远程服务(JMS)。Blazeds使用如下的方式在适配器和目的地间映射

        RemotingDestination uses JavaAdapter
        HTTPProxyDestination uses HTTPProxyAdapter or SOAPAdapter
        MessageDestination uses ActionScriptAdapter or JMSAdapter

分享到:
评论

相关推荐

    BlazeDS 数据通信技术

    #### 一、Blazeds体系结构 BlazeDS是一种用于实现Flex客户端与Java服务器端之间高效通信的技术。它允许开发者在客户端与服务器端之间轻松地发送远程调用和数据更新通知。为了更好地理解BlazeDS的工作原理,我们需要...

    blazeds开发文档

    在Blazeds体系中,几个关键组件构成了核心,它们包括通道(Channels)、端点(Endpoints)、消息(Messages)、服务(Services)、目的地(Destinations)和适配器(Adapters)。理解这些组件的工作方式对于深入学习...

    深入浅出Flex,经典教程

    “Blazeds体系结构.doc”会深入剖析BlazeDS的架构设计,包括其组件、工作原理以及与其他Adobe技术的配合。这有助于读者理解BlazeDS如何在服务器端和客户端之间建立通道,实现数据推送和服务调用。 “新建 Microsoft...

    Flex企业应用开发实战源代码

    5.2 BlazeDS体系结构 141 5.2.1 BlazeDS的组件 143 5.2.2 构建一个简单的BlazeDS应用 148 5.2.3 消息的传输过程 150 5.2.4 BlazeDS的序列化机制 156 5.2.5 FlexClient和FlexSession 161 5.3 BlazeDS的配置 162...

    flex4与java交互

    其改进的皮肤和组件体系结构允许开发者创建高度自定义的UI。同时,Flex4支持Spark和 Halo两种组件集,Spark组件提供更丰富的视觉效果和性能优化。 二、Flex4与Java的交互机制 1. AMF(Action Message Format):AMF...

    Flex体系架构剖析

    MXML是一种标记语言,用于描述Flex应用程序的界面布局和组件结构。它类似于HTML,但更专注于组件的定义和属性设置。ActionScript则是一种面向对象的脚本语言,用于编写应用程序的业务逻辑和控制流程。在Flex中,MXML...

    Flex+BlazeDB+mysql实现数据交互

    在这个体系结构中,Flex作为客户端,使用BlazeDS作为中间层,处理与服务器之间的数据交换,而MySQL作为数据库存储和管理数据。 **Flex数据交互**: Flex是一款强大的开发工具,用于创建互动丰富的基于Flash的用户...

    flex与后台servlet建立连接

    而Servlet是Java平台上用于处理HTTP请求的服务端程序,它是Java EE体系结构中的重要组成部分,常用于构建动态Web应用。 在这个"flex与后台servlet建立连接"的例子中,我们关注的是如何让Flex前端与后台的Java ...

    Manning.Hello.Flex.4.Nov.2009.rar

    Flex 4是Adobe Flex的重大更新版本,提供了更强大的设计工具、更灵活的组件体系结构以及对ActionScript 3的深度集成。 Flex 4,也被称为Gumbo,引入了全新的Skinning和Component Model,允许开发者通过视觉元素和...

    Flex3Cookbook.rar

    在学习和使用Flex3时,你需要掌握ActionScript的基础语法、MXML的结构以及Flex组件体系。此外,了解如何配置和使用BlazeDS或GraniteDS进行Java与Flex间的数据交换也是关键。对于Java开发者,还需要熟悉Servlet、JSP...

    wrox的《flex高级编程》源代码

    8. **Chapter 8** - 可能涵盖Flex的组件体系结构,包括标准组件的使用、自定义组件的创建,以及如何使用皮肤和样式来改变组件外观。 9. **Chapter 9** - 可能会讲解数据绑定和数据模型,这是Flex中非常重要的概念,...

    springmvc与Flex集成示例

    1. **通信协议**:Spring MVC与Flex之间的通信通常采用AMF(Action Message Format),这是一种二进制协议,能够高效地传输数据,支持复杂的数据结构。 2. **服务暴露**:在Spring MVC中,通过配置Spring的...

    Flex教程-PPT文档

    5. **Flex框架**:包括 Cairngorm、BlazeDS、PureMVC等,这些框架为Flex应用提供了结构化的开发模式,帮助开发者更好地组织代码和管理应用程序的生命周期。 6. **Services与Remoting**:Flex支持与服务器端进行数据...

    Spring_3.x企业应用开发实战 目录

    - **1.4 Spring体系结构** - **核心容器**:包含 Spring 框架的基本组成部分,如 BeanFactory 和 ApplicationContext。 - **数据访问/集成**:提供数据访问层的支持,包括 JDBC、ORM 和 OXM 等。 - **Web**:为 ...

    java面试资料

    在了解具体的Struts框架工作原理之前,我们需要先明确Struts框架的基本结构和工作流程。 **客户端请求处理流程:** 1. **客户端发起请求:** 用户通过浏览器等客户端向服务器发送HTTP请求。 2. **ActionServlet...

    跟我StepByStep学FLEX

    - **第一个程序**:通过创建一个简单的“Hello World”程序来熟悉FLEX的基本语法结构。 - **代码实现**:使用MXML(一种基于XML的语言)编写UI布局,并结合ActionScript实现交互逻辑。 ### UI组件与ActionScript #...

    Flex 开发架构

    与此同时,Java作为企业级应用开发的主要选择之一,拥有成熟的技术体系和广泛的社区支持。结合这两种技术进行Web应用程序开发成为了一种越来越受欢迎的方案。 #### 二、Flex与Java集成的典型架构 在Flex与Java集成...

    完整的Flex中文帮助文档 PDF格式

    这个“完整的Flex中文帮助文档”包含了对Flex全面的介绍、教程、API参考和指南,对于学习和理解Flex技术体系至关重要。下面将详细阐述Flex的核心知识点。 1. **Flex架构**:Flex是基于Flash Player或Adobe AIR运行...

Global site tag (gtag.js) - Google Analytics