`
qpb681wk
  • 浏览: 18716 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

学习Flex 和BlazeDS的十三个理由

 
阅读更多

学习Flex 和BlazeDS的十三个理由
2010年01月02日
  学习Flex 和BlazeDS的十三个理由
  2009-08-22 01:32
  Java程序员必须学习BlazeDS的十三个原因。通过这个例子,我来解释你可以使用BlazeDS的不同方法,任何一个你现有的Java应用程序或者新的Java应用程序。   理由一:开源
    Flex软件开发工具包核心(SDK)是开源架构,用以创建以及维护RIAs,不同浏览器和操作系统具有同样的外观设计风格。Flex是在Mozilla公共许可证下发布的。经过编译的Flex应用程序在私有的Adobe Flash平台上运行。
    对于连接Flex 和Java,BlazeDS是为远程和信息服务的开源技术。它作为servlet运行在Java应用程序服务器,允许你在任何Java web应用程序规范中使用。BlazeDS是从Lesser GNU Public License (LGPL)得到的许可。除了BlazeDS的发布,Adobe公布了ActionScript信息格式说明(AMF),允许BlazeDS 和Java与Flex客户端联系使用二进制格式。
    理由二:强大的社区支持
    Flex具有一个非常活跃的社区,有很多有贡献的主题。Flex.org,是一个关于Adobe的社区新闻站点,差不多每天都有更新,Yahoo! 上的Flex使用小组有超过11,000名成员。
    比如,Google 编码上的FlexLib项目贡献出大量的开源用户界面(UI)组成部分。Swiz 和 Mate项目贡献出一个架构来帮助处理事件。Gorilla Logic已经为自动化的UI测试贡献出Flex Monkey。
    理由三:你可以在六个月内得到一份工作
    根据Adobe的Flex教父James Ward的说法,市场对Flex高级工程师仍然有很大的需求。学习Flex能够让你掌握一门技术,在竞争中处于优势地位。
    理由四:更高的商业投资回报率
    一般来说,开发企业级web应用软件是众所周知的困难。Flex 和BlazeDS提供的不仅是更高级的工具,而且更容易扩展。开发者生产力的增长允许市场上销售的更多更快。Flex 和Flash创造了更完美的用户体验,提升了销量以及价格。
    一个理想的例子是博德斯图书连锁店,它最近在介绍一种新的具有“Magic Shelf”的website。这个站点使用Flash界面来模拟翻书的感觉。博德斯书店发现这真的可以提高流通率:“使用这种Flash仿真界面,顾客可以查看图书,DVD和 CD的封面,使用这一举措比没有体验过的顾客多62%的购买率”
    理由五:Flex 是第一种用来设计UIs的语言
    很多设计语言都是在事后增加了创建UIs的支持功能。特别体现在Java Swing上。因此,Swing处理一些简单事情,比如线路数据,是非常痛苦的,要求使用特殊的Swing数据模型。Swing的最大问题是你不得不在应用程序界面中挖掘很深才能有效。
    Flex恰恰相反:它一开始就是为创建web UIs而设计的。就像Bruce Eckel经常说的那样,Flex是第一款为UI设计的特定语言。所以使用Flex创建UI比使用其他方法要简单,比如JavaServer Page(JSP),JavaServer Faces (JSF)以及Swing。数据绑定,事件句柄,元件布局还有其它的常见UI发展技术都可以被这种语言创建,甚至你仅仅掌握了一小部分语言知识就可以。
    理由六:拥有与Java类似的设计模型
    你可以使用现有的开发Java的工具进行开发。你也可以使用包含在SDK中免费的命令行工具开发Flex应用程序,通过Adobe Flex Builder(一个Eclipse插件)或者使用最近的IntelliJ IDEA 8。
    Flex提供一个状态环境,数据可以加载到客户端。编译模型与Hypertext Markup Language (HTML)设计相比更像是编译一个桌面客户端,使得任何下载Java Swing设计的人都对编译模型感到很熟悉。
    Flex编译使用了一个MXML组合,一个UI markup语言,与可扩展的Markup 语言 (XML)相似,还有Adobe ActionScript和面向对象的脚本语言。这个组合使得编译Flex与编译Java相似,因为你可以使用概念非常熟悉的面向对象的方式。
    理想的方法是创建你的开发环境使得Flex应用程序能够在web开发地址录中创建。使用这种方法,你不需要在每次创建后重新部署您的应用程序:一个简单的浏览器恢复功能,可以看到最后一次操作。结果是使用Flex 和BlazeDS开发相当有效。
  理由七:BlazeDS可以在任何Java应用服务器上运行
    BlazeDS的多个版本都是可以使用的,包括即将投入使用的包含Apache Tomcat设置的版本。在这篇文章中,我使用二进制分布,作为web档案(WAR),来显示你在应用服务器上如何进行部署。否则你可以引用Java存档(JAR)文件,在你的项目中使用。为了获取各种各样安装BlazeDS的信息而访问BlazeDS wiki。
    这个例子是在现有的项目上使用BlazeDS。你只需要在你的项目上增加JAR文件,然后你可以在应用程序内部使用BlazeDS,这允许你在任何可以部署应用程序的地方部署它。
    在你的项目上增加BlazeDS,完整步骤如下:
    1、 找出包含BlazeDS WAR文件 jar xvf blazeds.war
    2、 复制JAR文件到你的项目lib目录:cp -R WEB-INF/lib /sodaSample。
    理由八:可以在现有的Java应用程序上使用
    再soda的例子中,假设你想要暴露现有的soda服务以便远程的Flex应用程序可以与之链接。在现有的应用程序上创建BlazeDS的基本步骤如下:
    1、 在WEB-INF/flex目录下编辑BlazeDS配置文件。
    2、 在应用程序上web.xml上规定MessageBrokerServlet 以及session listener。
    创建BlazeDS以后,你需要增加你的soda服务到BlazeDS远程配置文件,它允许从Flex 客户端访问soda服务。通过规定一个目的地以及一个或者更多的数据传送渠道来实现添加。基础的AMF渠道在服务器.xml文件中被定义。通过这个定义在远程config.xml 中识别你的目的地:
              
    com.gorillalogic.sodaSample.SodaService
    
    
    通过在远程配置文件中定义端口,你可以从Flex客户端访问任何一个Java服务。  传递Java数据模型到Flex客户端,在你的脚本class中定义两者之间的映射:
    [Bindable]
    [RemoteClass(alias="com.gorillalogic.sodaSample.SodaModel")]
  这段代码显示Flex,当远程服务访问返回Java SodaModel的结果把其映射到你的SodaModel。Flex客户端的示例显示如何访问这个Java服务。访问返回一个odaModel,根据你的命令:
           public function callSodaService():void {   var sodaType:String = type.text;
    var sodaCount:int = parseInt(cnt.text);
    var flag:Boolean = preOpen.selected;
    remoteObject.getSoda(sodaType, sodaCount, flag);
    }
    private function resultHandler(event:ResultEvent):void {
    var sodaModel:SodaModel = event.result as SodaModel;
    }
    Flex从变化的结果中返回你的结果,映射到你的SodaModel上。我不在这里讲述细节,但是一个需要说的细节是在汇编配置中指定services-config.xml,像以下所写:  -locale en_US -services=/nsource/sodaSample/web/WEB-INF/flex/services-config.xml -context-root /
    如果不这样,你的Flex客户端将无法找到Java服务。同样的方法,你可以从客户端传递一个对象返还到服务。比如,你可以传递空的soda model返还到客户端。
    理由九:你可以扩展BlazeDS以及使用Java对其进行修改
    假设你决定当soda服务器被访问的任何时候,要增加一个特别的logging。你可以扩展Java编辑者的标准来增加logging。
    首先,增加Java类别扩展JavaAdapter:
           import flex.messaging.services.remoting.adapters.JavaAdapter.   public class TimingJavaAdapter extends JavaAdapter {
    Then, overload the invoke() method:
    public Object invoke(Message message) {
    RemotingMessage remotingMessage = (RemotingMessage) message;
    String operation = remotingMessage.getOperation();
    String destination = remotingMessage.getDestination();
    Logger.info("calling " + operation + " on destination " + destination);
    Object data = super.invoke(message);
    return data;
    }
    使用这种方法,你可以看见即将要进行的操作以及访问的目的地。你可以使用这种简单的hook,比如说你可以测试对服务器多长时间的访问是最有意义的。理由十:你可以从HTML 和JSP访问BlazeDS
    你可以用不同的方式进行访问,比如通过浏览器管理或者flashVars。flashVars可以通过HTML页设置,然后通过Flex引用程序读出。
    举个例子,比如你想要传递你的用户名以及用户类型,想要从HTML页面上进行命令。你必须要在HTML页设置flashVars,如下:
              
    
    
    
    然后,在你的Flex应用程序中你可以通过应用程序参数读出这些变数:         var username:String;   if (Application.application.parameters.hasOwnProperty("username")) {
    username = Application.application.parameters.username;
    }
    理由十一:Flex 和BlazeDS的数据传送比其它的Ajax解决方案好  默认情况下,所有的远程程序调用(RPCs)在使用的时候运用的是AMF二进制协议。一个开放的标准,AMF极端的迅速。James Ward组成了一个整体样本显示与其他它远程解决方案的对比。尽管其它的异步式JavaScript 和 XML (Ajax)解决方案,比如Dojo与几个成百的队列进行对抗,具有BlazeDS的Flex可以轻松的解决几千个队列。(James Ward为不同的RIA数据加载技术基准做的统计)
    理由十二:你可以直接从Java 客户端访问BlazeDS
    BlazeDS最新发布的版本包含一个Java AMF类,你可以使用它使得Java 客户端访问BlazeDS服务。这种访问unit testing的方法在单元测试以及下载测试中都显示极其有效。
    理由十三:和Spring框架一起使用
    Adobe 与 Spring框架的组合带来两个项目之间更紧密的结合,最初发布的Spring-BlazeDS整合就显示了很多前景。通过允许Spring Bean成为远程服务,完全一样的配置文件将会被删除。
    结论:
    BlazeDS成为开源并且基于Java,对于新事物以及现有的Java服务项目这的确是一个好的选择。优秀的远程交流性能以及Flex 和Java之间的对象映射,Flex和 BlazeDS技术是RIA发展的一个好的选择。Flex 和BlazeDS对于 Java开发者来说是新鲜事物,开发者们会发现它的发展进程非常丰富,并且非常容易学习。
    有BlazeDS 伴随的Flex也是大型企业级应用软件的一个好选择。在以前的一个项目中,我的团队写一个应用程序会包含超过50种不同的表现形式,在服务器与客户端之间规律的转移一些上千行的数据。这种应用程序已经几乎不可能使用传统的Ajax技术。使用Flex 和BlazeDS,在接下来的一年中我们将可以发布最初的版本。看一看这种充满活力的工具可以为你的应用程序发展项目做什么吧。
分享到:
评论

相关推荐

    flex+blazeds+spring

    BlazeDS是Adobe提供的一个免费服务器端技术,它为Flex客户端提供了与Java应用程序交互的能力,包括实时消息传递、Remoting和数据推送等功能。Spring是一个广泛使用的Java企业级应用开发框架,它简化了Java应用程序的...

    flex + blazeDs

    如果要深入了解Flex + BlazeDS的开发,可以研究这个文件,查看MXML和ActionScript代码,了解它们如何与BlazeDS服务交互。 总之,“Flex + BlazeDS”是开发富互联网应用的一种强大组合,它利用Flex的可视化界面和...

    flex+blazeDS配置指南

    而BlazeDS是Adobe提供的一个免费服务器端组件,用于实现Flex与Java后端的数据通信。本文将深入探讨如何配置Flex与BlazeDS,让它们协同工作,实现高效、稳定的数据交换。 首先,我们需要准备必要的工具和环境。...

    Flex Spring JAVA BLAZEDS整合

    BlazeDS是Adobe提供的一个开源工具,它支持Java远程调用(RPC)和Web消息传递,允许Flex客户端与Java服务器之间进行通信。 在Flex和Spring的整合中,关键在于Spring容器管理的Bean如何被Flex客户端访问。Spring社区...

    PureMVC+Flex+BlazeDS+Spring+Hibernate.doc

    标题中的“PureMVC+Flex+BlazeDS+Spring+Hibernate.doc”指的是一项整合了多种技术的Web应用开发方案,这些技术包括PureMVC、Flex、BlazeDS、Spring和Hibernate。这篇文档可能是指导读者如何将这些技术结合在一起...

    Flex Blazeds入门教程

    1. **Flex**:Adobe Flex是一个用于构建和部署富互联网应用程序(RIA)的软件框架,能够创建跨平台的桌面和移动设备应用程序。Flex使用MXML和ActionScript编程语言,能够与多种后端技术无缝集成。 2. **LCDS ...

    Flex + BlazeDS+ Java 入门教程

    在"firstFlex"这个文件中,可能包含了教程的示例代码和项目结构,通过逐步学习并运行这些示例,你可以更深入地理解和掌握Flex和BlazeDS的结合使用。 总的来说,"Flex + BlazeDS+ Java 入门教程"是一个全面的学习...

    flex 工具 blazeds

    AMF是一种二进制数据格式,用于在Flex客户端和BlazeDS服务器之间高效地传输数据。相比于XML或JSON,AMF的解析速度更快,数据量更小,因此在处理大量数据时效率更高。BlazeDS将Java对象转换为AMF格式,使Flex客户端...

    Flex + blazeds + Java推送

    Flex + blazeds + Java推送Demo 本例实现由Flex一端客户端发送消息, 然后由Java端在发布到所有订阅的其它Flex端. 里面有说明与源码, 还有一个直接放到Tomcat里面的直接发布的项目 小编使用工具 eclipse3.5 flex sdk...

    flex blazeds的入门例子

    Flex BlazDS是一个强大的数据集成框架,用于在Adobe Flex客户端和Java服务器之间建立实时的双向通信...通过这个简单的例子,你可以掌握Flex与BlazDS的基础,为进一步深入学习Flex应用开发和Java后端集成打下坚实基础。

    flex之BlazeDS案例

    Flex之BlazeDS案例是一个关于使用Adobe Flex前端与Java后台通过BlazeDS进行数据通信的实践项目。在本文中,我们将深入探讨Flex、BlazeDS以及它们如何协同工作以实现富互联网应用程序(RIA)的数据交互。 Flex是一种...

    Flex+blazeDS+Spring官方Demo,环境搭建

    Flex+blazeDS+Spring官方Demo,环境搭建,内含十几个例子,从易到难,包括spring消息,spring安全,注解方式和非注解配置文件方式,十分好用。内含有tomcat,可直接启动并运行用户手册。

    flex+blazeds搭建环境步骤

    通过以上步骤,我们可以成功地在MyEclipse中搭建起一个基于Flex和BlazeDS的开发环境,实现Flex前端与后端Java服务之间的远程调用。这种集成方式不仅提高了Web应用的交互性和响应速度,还使得开发者能够更高效地构建...

    Myeclipse8.5+flex4.5+Blazeds+SSH环境搭建

    13. **包和类的创建**:在 Flex 项目中,编写如 `UserBiz` 类的 Java 类,用于实现业务逻辑,通过 BlazeDS 与 Flex 客户端交互。 14. **remoting-config.xml 配置**:在 `remoting-config.xml` 文件中定义数据目的...

    MyEclipse 8.5+Flex+BlazeDs通信

    MyEclipse 是一个强大的集成开发环境(IDE),特别适合于 Java 开发,而 Flex 是一种用于创建交互式用户界面的开源框架,BlazeDs 则是 Adobe 推出的服务器端数据服务组件,用于实现在 Flex 客户端和 Java 应用服务器...

    Flex之BlazeDS文档

    Flex和AIR程序使用Flex组件与BlazeDS服务器进行通信,包括RemoteObject、HTTPService、WebService、Producer和Consumer等组件。这些组件都是Flex SDK的一部分。除了Flex或AIR之外,也可以结合使用HTML和JavaScript...

    flex通过blazeds与java通信的小例子

    这个小例子旨在帮助初学者理解Flex和BlazeDS如何协同工作,实现客户端和服务器端的数据交换。通过这个实例,你可以学习到Flex的事件处理、数据绑定,以及BlazeDS的AMF通信机制等关键知识点。同时,这也是深入学习...

    Flex+BlazeDS+java通信详细笔记和源代码

    2. **Messaging**:BlazeDS的`LiveCycle Data Services`提供了一个消息代理系统,允许Flex客户端订阅和发布消息。通过`HTTPChannel`或`RTMPChannel`,客户端可以接收服务器推送的消息。 **PushTest6**:这个文件...

    Flex+blazeds+java企业门户网站完整源码

    总之,这个“Flex+blazeds+java企业门户网站完整源码”是一个很好的学习资源,可以帮助开发者掌握如何利用Flex构建富用户体验的Web应用,并通过BlazeDS实现与Java后端的有效交互,进而构建高效、功能强大的企业级...

Global site tag (gtag.js) - Google Analytics