文档章节

《BlazeDS开发指南》学习笔记(一):概述

序写人生
 序写人生
发布于 2010/05/31 12:32
字数 1361
阅读 1186
收藏 2

一、概述

 

        BlazeDS是Adobe公司发布的免费开源产品,是该公司另一个收费产品LCDS的简化开源版本,BlazeDS使用Java语言在服务端提供如下功能:

 

  1、提供客户端(Flex、AIR)通过AMF协议访问服务端(Java)数据的功能;

  2、提供服务端广播数据给多个客户端的功能;

  3、提供客户端与客户端实时通信的功能;

 

  一个BlazeDS应用程序包括两个部分:客户端应用程序和服务端J2EE应用程序,如下图:

    客户端程序:一个BlazeDS应用的客户端程序一般为Flex或AIR,而Flex或AIR程序通过Flex SDK中的控件RemoteObject、HTTPService、Producer、Consumer与BlazeDS服务端通信,另外,你也可以结合Flex、HTML和JavaScript技术来构建客户端程序,更可以在HTML和JavaScript中使用Ajax客户端库来与BlazeDS通信。

 

  服务端程序:BlazeDS服务端运行在基于J2EE的Web服务器中,通过如下配置可以使得一个J2EE Web服务器支持BlazeDS:

  1、拷贝BlazeDS的jar文件和相关依赖jar文件到WEB-INF/lib目录下;

  2、编辑WEB-INF/flex目录下BlazeDS的配置文件;

  3、在WEB-INF/web.xml文件中定义MessageBrokerServlet和Session监听器;

   二、特点

 

  下图详细展示了BlazeDS的主要特点:

 1、RPC Services(RPC服务):RPC服务被设计成为调用和响应的模式,这对应用程序访问外部数据是一种很好的选择,它能够使客户端异步请求远程服务并直接把结果返回,在具体程序中,可以使用客户端的RPC控件如HTTP GET或HTTP POST(HTTP Services)、SOAP(Web Services)、Java Objects(RemoteObject Services)访问RPC Services。

 

  如果你想通过使用RPC Services提供一些企业级功能,如不同域之间数据交换的代理功能、客户端认证、服务器端日志、本地化支持、RPC Services服务集中化管理等功能时,BlazeDS通过使用RemoteObject控件可以轻松实现,而不需要配置他们像SOAP-compliant网络服务。

 

  当客户端RPC控件调用远程服务时,该控件就会把服务端返回的数据保存在一个ActionScript对象中,这样,在程序中就能够很轻松的获取该要的数据,而这些客户端控件包括HTTPService、WebService、RemoteObject控件。

 

  2、Messaging Services(消息服务):消息服务就是通过服务器端来回的传送消息以实现客户端的异步交流,一条消息由唯一标识号、BlazeDS头、其他自定义头和消息体组成。

 

  客户端程序中发送消息的部分称为消息生产者(producers),在Flex程序中可以通过Producer控件定义,而接收消息的部分称为消息消费者(consumer),在Flex中可以通过Consumer控件定义,Consumer控件负责订阅和接收服务器端某一个目的地的消息,而Producer控件负责向该目的地发送消息。

 

  消息服务同时也支持通过JMSAdapter实现的桥接模式来访问外部的JMS服务器,这使得Flex程序能够与外部的Java应用程序实现数据交流。

 

  3、Service adapters:BlazeDS可以访问各种不同的数据持久化方案,比如数据库、JMS等其他持久化机制。

 

  4、The message-based framework(基于消息的框架):BlazeDS在客户端和服务器端来回的传送数据,他是一个基于消息的框架,主要运用了两种交换模式,第一种,请求/响应模式,客户端发送请求给服务端,服务端处理好之后返回一个包含结果的响应,RPC服务就是使用的这种模式;第二种,发布/订阅模式,服务端将数据发布给订阅了该消息的客户端列表,消息服务就是使用这种模式来发布数据给各客户端的,同时,消息服务也使用请求/响应模式来解决一些发布消息、数据交换等问题。

 

  5、Channels and endpoints(通道和端点):在网络上,客户端是通过通道与服务端传送数据的,通道负责封装消息格式、网络协议、解析方式、目的和应用代码,负责格式化和翻译消息为特定网络下的模式,然后分发给相应的端点。另外,通道使得客户端发送给服务端的消息变得有序性和对应性,这对数据传送的一致性和可预见性起到重要的作用。

 

  在服务器端,通道是与基于Java的端点发生交换的,端点负责解析消息成特定的协议模式,然后把它传送给普通Java形式的“消息代理人”(Message Broker),最终由消息代理人决定该消息发往何处,路由给恰当的目的地,详细如下图所示:

  6、Channel types(通道类型):BlazeDS提供以下几种通道:(1)标准AMF通道;(2)加密AMF通道;(3)HTTP通道(AMFX)。其中AMF和HTTP通道都支持无轮询的请求/响应模式和客户端轮询模式(模拟实时通信),而AMF和HTTP流通道模式提供了真正的数据流实时模式。

© 著作权归作者所有

序写人生
粉丝 7
博文 13
码字总数 10137
作品 0
东城
高级程序员
私信 提问
建立BlazeDS工程并上手开发

BlazeDS作为adobe的Flex/Java的remoting方案已经发布一年多了,目前的版本也已经到3.2了,但是实际上很多从事java开发的人还不清楚怎么去用它,下面就结合一篇博客进行详细的描述如何去配置你...

序写人生
2010/06/13
682
0
Spring BlazeDS Integration 1.5.0 GA 发布

Spring BlazeDS Integration 今天发布了 1.5.0 GA 版本,Spring BlazeDS Integration 可以用来简化开发基于 Spring 框架开发的Web应用,前端采用 Adobe Flex 开发的应用界面。它使用 Spring...

红薯
2011/06/29
1K
4
Apache Flex BlazeDS 4.7.2 发布,Web 通讯工具

Apache Flex BlazeDS 4.7.2 发布,Apache Flex BlazeDS 是基于服务器的 Java 远程和 Web 通讯工具,方便开发者连接后端分布式数据和实时推送数据到 Adobe(r) Flex(r) 和 Adobe AIR(tm) 应用,...

oschina
2015/11/21
2.4K
6
Apache Flex BlazeDS 4.7.3 发布,Web 通讯工具

Apache Flex BlazeDS 是基于服务器的 Java 远程和 Web 通讯工具,方便开发者连接后端分布式数据和实时推送数据到 Adobe(r) Flex(r) 和 Adobe AIR(tm) 应用,提供更丰富的网络应用 (RIA) 体验...

王练
2017/04/01
745
4
java blazeDS maven JAR包无法下载方案

一直在网上没找着blazeDS JAR 公共库, 项目构建时无法构建,公共库上没有JAR包,索性手动安装JAR包 问题解决,当然这样不能解决团队成员JAR包的供用依赖,但如果自己搭建私服 执行以下命令:...

BondZhan
2013/07/11
744
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot2.0 maven打包分离lib,resources

springboot将工程打包成jar包后,会出现获取classpath下的文件出现测试环境正常而生产环境文件找不到的问题,这是因为 1、在调试过程中,文件是真实存在于磁盘的某个目录。此时通过获取文件路...

陈俊凯
今天
4
0
BootStrap

一、BootStrap 简洁、直观、强悍的前端开发框架,让web开发更加迅速、简单 中文镜像网站:http://www.bootcss.com 用于开发响应式布局、移动设备优先的WEB项目 1、使用boot 创建文件夹,在文...

wytao1995
今天
9
0
小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
今天
8
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
今天
7
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
今天
8
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部