二、Blazeds体系结构

Blazeds体系结构
一个Blazeds应用包含了一个运行在浏览器或者Adobe AIR的客户端应用并且和J2EE应用服务端通信。客户端可以是Flex也可以是结合Flex、HTML/JavaScript的应用程序。

整个体系主要包括通道、端点、消息、服务、目的地、适配器等,把这些搞懂也就差不多了。通道使得组件能够和Blazeds服务端的端点通信,将请求送到目的地端点和通道是相互映射的
1.Blazeds客户端体系结构
       Blazeds使用一个基于消息的框架与服务端结合。这个框架使用通道封装了Flex程序和Blazeds服务端之间的连接。下面是Blazeds客户端的结构

以下Flex组件和Blazeds服务端结合:
       . RemoteObject
       • HTTPService
       • WebService
       • Producer
       • Consumer
所有的这些组件都包含在Flex SDK和rpc.swc组件库中。
尽管RemoteObject、Producer、Consumer包含在Flex SDK中,他们仍然需要一个服务端来反编译出他们发送的消息。Blazeds和LiveCycle Data Services ES服务就是两个这样的服务端。当然Flex应用程序可以不使用Blazeds这种中间层而是直接使用HTTP Service或者Web Service来调用远程服务
2.0 通道和通道设置
        Flex组件使用通道和Blazeds服务端交互。一条通道包含多条道路,他们的基础功能就是提供Flex客户端和Blazeds服务端的交流。通道中的道路都是按性能排序的。Flex组件会尝试连接第一条道路,不过这并不能保证一定能连接,有可能使用的还是道路中后面的那几条。它会搜寻通道中的道路知道连接上或者已经没有连接。

通道封装了Flex组件和Blazeds服务端之间的连接方式。概念上来说,通道是Flex组件下面的组件,他们处理组件和Blazeds服务端之间的交互。他们和Blazeds服务端上相应的端点通信。

Flex客户端使用不同的通道类型。例如AMFChannel和HTTPChannel。通道选择有很多的因素,包括你的程序构建的类型。如果你想要使用无二进制压缩的方式传输,可以使用HTTPChannel,它使用AMFX(AMF in XML),一种无二进制压缩的方式。

下面的例子在services-config.xml文件中创建了一个AMFChannel通道,与服务器上的AMFEndpoint通信:

2.1为flex组件指定通道

如果你通过-services选项指定services-config.xml文件来编译MXML文件,那么组件(RemoteObject、HTTPService等等)会自动指定一个或者多个通道配置实例。

不过如果你没有加这个编译参数,或者想自己覆写编译项的行为,那么你可以在MXML或者AS文件中为组件指定通道。当你想要为你的组件使用动态目的地的时候,整个应用级别的默认通道非常重要。

通过加上-services编译参数,可以包含所有的客户端连接服务器需要的信息,但是一下情况你可能会选择手动设置通道:

1) 你不想硬编码端点路径在你编译的客户端swf文件。

2) 你想要动态的创建目的地(目的地不在services-config.xml文件内)。

3) 你想要在客户端代码控制组件使用通道的顺序。

下面的代码展示了如何在MXML文件中定义通道:

道MLcationonfig.xmluri="http://myserver:2000/myapp/messagebroker/amf"/>

下面的代码则是AS文件:

private function run():void {

ro = new RemoteObject();

var cs:ChannelSet = new ChannelSet();

cs.addChannel(new AMFChannel("myAmf",

"http://servname:2000/eqa/messagebroker/amf"));

ro.destination = "Dest";

ro.channelSet = cs;

}

注意:当你在客户端代码创建通道时,还是必须在services-config.xml文件里配置一个指定端点的通道。否则,messagebroker就不能床底客户端请求到端点。

2.2 为目的地指定通道和端点

如果大多数的目的地使用使用相同的通道,你可以指定应用级别的默认通道,比如:

...

s

...

也可以单独指定通道,比如:

...

2.3 选择端点

可以参考文档或者看blazeds通道、端点配置

消息

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中。

MessageBrokerServlet

MessageBrokerServlet

flex.messaging.MessageBrokerServlet

services.configuration.file

/WEB-INF/flex/services-config.xml

1

客户端程序使用通道和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体系结构(一)【转载】相关推荐

  1. Butterfly主题安装文档(二)之主题配置

    语言 修改项目配置文件 _config.yml 默认语言是 en language: zh-CN 主题支持三种语言: default(en) zh-CN (简体中文) zh-TW (繁体中文) 网站资 ...

  2. Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)(二)

    二.跨域: 回到顶部 跨域知识介绍: 点我以前博客 跨域解决方法:CORS:跨域资源共享 CORS请求分类(简单请求和非简单请求) 简单请求(simple request):只需要在头信息之中增加一个 ...

  3. C# VS2012操作word文档 (二).插入表格图片

    在上一篇文章"C# VS2012创建word文档.(一)"中我们讲述了如何使用VS2012引用COM中Miscrosoft Word 14.0 Object Library实现创建 ...

  4. (马世龙)Linux下CACTI完全搭建技术文档二

    续(马世龙)Linux下CACTI完全搭建技术文档一 6.完成cacti的安装 1. 首先检查一下rra/下面,有没有数据 2. snmpwalk -v 2c -c public ServerIP i ...

  5. 翻译qmake文档(二) Getting Started

    翻译qmake文档 目录 原英文文档: http://qt-project.org/doc/qt-5/qmake-tutorial.html 本教程教讲授qmake基础知识.这个手册里的其它专题包含更 ...

  6. Print2flash在.NET(C#)64位中的使用,即文档在线预览(转载)

    转:http://www.cnblogs.com/flowwind/p/3411106.html Print2flash在.NET(C#)中的使用,即文档在线预览 office文档(word,exce ...

  7. Xadmin文档(二)

    转载自:https://xadmin.readthedocs.org/en/latest/views_api.html Views class xadmin.views. BaseAdminObjec ...

  8. SpringCloud从入门到精通(超详细文档二)

    上一篇文档(SpringCloud从入门到精通之超详细文档一)已经对Springboot/SpringCloud做了简单的介绍以及应用讲解,下面将继续为大家介绍SpringCloud后续应用. 第12 ...

  9. Java生成doc文档二(做一个简单的封面)

    在上一篇博客中,我们提到了三个重要的概念,下面来就来实际做一个word文档的封面. 我们创建的是Maven项目,添加两个Maven依赖如下: <dependencies><depen ...

  10. java long 除法运算_java基础知识学习文档二

    一.基本概念 1 对象: 对象是Java类的一个实例,它有状态.属性.行为.如:一个人,具体的某一个人是人类的一个实例.这个人他有名字.性别.年龄等属性,他可以吃饭.说话.走路等行为. 2 类: 类是 ...

最新文章

  1. navicat保存查询语句_MySQL数据库安装创建及Navicat客户端连接
  2. 【Android 异步操作】线程池 ( 线程池 execute 方法源码解析 )
  3. 新手入门深度学习 | 第六篇:TensorFlow2 回调极速入门
  4. 昆仑mcp文件是什么版本_昆仑健康保2.0升级版怎么样?有哪些优缺点?
  5. 【备忘录】物料分类账的启用配置
  6. 群集lvs—DR的配置及应用
  7. 数据结构与算法--有序数组中找出和为s的两个数字
  8. java tongpaiyu danliantiao_java版的汉字转拼音程序
  9. 自动化测试介入的时机
  10. 鲜花销售管理系统jsp全部代码_[内附完整源码和文档] 基于JSP网上花店销售系统的设计与实现...
  11. pb9连接mysql
  12. 凯叔讲故事显示未能连接到服务器,凯叔讲故事(免费收听)
  13. java jar 包启动程序指定代理
  14. 网易邮箱VIP注册页面可部分绕过Windows安全中心的验证
  15. JavaScript——JSON
  16. 自定义xml配置文件之dtd文件校验
  17. 从18路诸侯讨董卓,谈如何对抗51%攻击
  18. 了解文件系统调用吗?如何实现的?
  19. 太强了,全面解析缓存应用经典问题
  20. 强强联手 汇丰银行和IBM合作开发量子金融的应用

热门文章

  1. 最新教程Instagram如何下载并注册
  2. Typora下载、安装及使用
  3. vue 使用 vue-wechat-title 动态设置title
  4. C语言找出1000之内的完数
  5. SolidWorks工程图中模板与格式的关系
  6. 推荐三款U盘烧写工具
  7. matlab双闭环绘图,matlab双闭环直流调速系统设计及仿真+电路图
  8. Java 高并发编程详解:多线程与架构设计
  9. Linux 常用软件
  10. 孙玄:微服务架构中分布式事务实现方案如何取舍