BlazeDS 是一个基于服务器的 Java 远程控制 (remoting) 和 Web 消息传递 (messaging) 技术,以LGPL(Lesser GNU Public License)公共许可证书发布。它能够使得后端的 Java 应用程序和运行在浏览器上的 Adobe Flex 应用程序相互通信。在Java应用服务器上,它以servlet的形式存在, 因此可以在任何标准Java网络应用中运用它。

blazeDS是一套面向actionscript的前后台通信框架。

在服务器端,blazeDS以servlet的方式存在于java应用服务器上。它默认提供3中服务,远程调用(在remoting-config.xml中配置)、访问代理(proxy-config.xml)、消息服务(messaging-config.xml),同时框架允许你添加自定义的服务(在services-config.xml中配置)。

在客户端,blazeDS提供了RemoteObject、HttpServcie、WebService,Product和Comsumer等组件来提供访问服务器端数据的能力,其中RemoteObject、Product和Comsumer是以amf协议来交换数据的,而HttpServcie和WebService则采用的是比较通用的访问协议,可以用来访问非blazeDS服务器(即普通的web服务器)。

那么服务端和客户端如何关联起来呢?答案是通过destination和channel、endpoint。

首先要在服务器端定义需要的destination,根据destination所属的service类别不同,应该把destination定义在不同的配置文件里(remoting-config.xml或proxy-config.xml或messaging-config.xml)。同时为destination指定channel(如果不指定,就会使用默认的channel)。

在客户端的代码中只需要为你的组件(比如RemoteObject)指定destination和取得数据后的回调函数就行了,剩下来的就是编译器的事情了。Flex为你隐藏了channel的调用。所以你需要写的代码很少。

服务端的结构图如下:

客户端的结构图如下:

如果做个helloworld的例子,网上很多,blazeDS自带的examples也很典型。这里就不累诉了。相信有一定经验的初学者都能很快上手。需要强调的是,blazseDS客户端工程的特殊之处是它的编译依赖于服务端程序的4个配置文件,就是之前其提过的services-config.xml 、remoting-config.xml、proxy-config.xml、messaging-config.xml(都位于服务端工程的WEB-INF\flex目录下),同时编译参数Context Root必须设置正确。编译错了,程序再对也出不来结果的,呵呵。

介绍了blazeDS的结构体系,下面来分析下我们能用blazeDS来做什么呢?

这个就要中blazeDS所提供的3种服务来分析了。

  1. 1.              远程调用。其实框架在这里起到的作用和struts等服务端的框架差不多,都是任务分配的功能,只不过blazeDS支持客户端直接对象调用,一方面提高了数据传输速度,另一方面省了在客户端写url,但是它需要编译客户端的时候关联服务端配置文件,烦!综合考虑优缺点,这个功能还是值得使用的。
  2. 2.              访问代理。能够提供权限控制,和跨域访问的能力。这个任何web服务器都能做到(加httpClient转发么),没什么特殊之处。
  3. 3.              消息服务。这个正式blazeDS 牛的地方,它能向普通的浏览器客户端页面推送数据,而不需要建立socket链接。这个应用在很多地方都有用到,比如股票信息即时刷新,在线聊天等等需要实时数据推送的场景。

我的想法是,如果是一个全新的完整的flash应用项目,那么用blazeDS的框架是一个不错的选择。如果是要在原有的javaWeb系统上增加功能的话,还是仅仅用一下blazeDS的消息推送服务就可以了,毕竟用flex直接访问http也很方便。

 
 

BlazeDS简介(转自openkk的日志)的更多相关文章

  1. 【DWR系列06】- DWR日志及js压缩

    img { border: solid 1px } 一.日志 DWR依赖 Apache Commons Logging,可以使用log4j实现日志记录功能. 1.1 日志简介 和其他日志框架一样,当设 ...

  2. 【转】logback 常用配置详解(序)logback 简介

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1101222, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

  3. 深入分析Java的内置日志API(java.util.logging)(一)

    简介   任何的软件系统,日志都是非常重要的一部分.良好统一的日志规范会大大提高应用程序的可维护性.可靠性,并进而提高开发效率,指导业务.在早期,Java工程师往往都是利用 System.err.pr ...

  4. 切割日志(mysql,nginx,php tomcat)使用logrotate

    1.简介 logrotate 程序是一个日志文件管理工具.用来把旧的日志文件删除,并创建新的日志文件,我们把这个过程叫做“转储”.我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 ...

  5. Oracle logminer 日志挖掘

    Table of Contents 1. LOGMNR简介 2. 创建数据字典 2.1. 外部文件存储数据字典 2.2. redo log 存储数据字典 3. 添加需要分析的文件 4. 开始分析文件 ...

  6. logback 常用配置详解(序)logback 简介

    转自:http://aub.iteye.com/blog/1101260 logback 简介 Ceki Gülcü在Java日志领域世界知名.他创造了Log4J ,这个最早的Java日志框架即便在J ...

  7. mysqlbinlog的日志类型

    一.mysqlbinlog简介 binlog又叫二进制日志文件,它会将mysql中所有修改数据库数据的Query以二进制的形式记录到日志文件中,如:create,insert,drop,update等 ...

  8. 关于K8s集群器日志收集的总结

    本文介绍了kubernetes官方提供的日志收集方法,并介绍了Fluentd日志收集器并与其他产品做了比较.最后介绍了好雨云帮如何对k8s进行改造并使用ZeroMQ以消息的形式将日志传输到统一的日志处 ...

  9. nxlog以syslog方式发送日志

    1.nxlog简介 nxlog是个跨平台日志传输插件,支持linux.windows平台,支持window及linux内置的大部分系统日志及常见的web日志,支持tcp.udp.http(s)等协议传 ...

随机推荐

  1. JavaBean和EJB的区别

    首先,EJB是指运行在EJB容器中的JavaBean.Tomcat是Web容器的参考实现.一个完整的JavaEE服务器应该包括Web容器和EJB容器.其次,Web容器中无法运行EJB,同时所有的Jav ...

  2. 上传图片预览,支持IE6

    //说明:图片上传预览插件 //上传的时候可以生成固定宽高范围内的等比例缩放图 //参数设置: //width 存放图片固定大小容器的宽 //height 存放图片固定大小容器的高 //imgDiv ...

  3. oracle导出数据显示出现ora-00109或者LRM-00109出错修改办法

    出现这种问题是因为日期格式的问题,调整日期格式后就可以了 改成yyyy-mm-dd的格式就好了

  4. IOS开发几何类方法 CGGeometry.h文件

    CGGeometry.h文件是用C语言实现的一个封装了许多常用几何方法的文件. 一.几个常用结构体 struct CGPoint { CGFloat x; CGFloat y; }; 定义一个点,设置 ...

  5. 用ant重新编译jdk加入调试信息

    (文章后面提供了ant和build.xml打包之后的build.zip下载,解压build.zip,然后将apache-ant-1.9.2-bin.zip解压即完成了ant安装,也可到http://a ...

  6. 快速下单!简化EcStore的购物结算流程

    EcStore拥有完善的购物车功能,方便顾客浏览挑选商品,但是在提交订单时必须要求用户先登录注册 如果是未注册用户还多出一个注册用户的步骤这些多出来的步骤和操作会影响购物下单的流畅性,降低了用户购物下 ...

  7. 在服务器上php执行某些远程函数出错

    Warning: imagecreatefromjpeg(): php_network_getaddresses: getaddrinfo failed: Name or service not kn ...

  8. Python之路第十二天,高级(4)-Python操作rabbitMQ

    rabbitMQ RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息队列(M ...

  9. Django的痛点

    如果一个html里面写了多个<a href = A.html > ,启动A.html也有这个<a herf = B.xml> 这个时候Django怎么访问这些url?

  10. BZOJ 3572 世界树(虚树)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3572 思路:建立虚树,然后可以发现,每条边不是同归属于一端,那就是切开,一半给上面,一半给下面. # ...