Exadel的Flamingo项目是一个快速启动后台使用Java构建的RIA应用的工具在中间层该工具对Seam和Spring都提供了支持在 展现层Flamingo既支持Flex也支持JavaFX该工具启动应用程序开发的方式与AppFuse项目类似后者可用于更传统的Java Web层框架InfoQ与Exadel的Igor Polevoy和Fima Katz进行了交谈以了解更多关于Flamingo的信息
Igor和Fima以分享Flamingo的特性细节作为开场白现在的特性可以被划分为三个逻辑分组
工具
Flamingo提供了快速启动简单功能项目的能力把一个项目组装在一起是一个费时费力的过程这不是什么秘密了此外在Java界有许多不同的方法 来开发项目我们意识到了这个问题并创造出了Flamingo工具作为解决方案使用Flamingo工具你不但可以快速地创建一个新项目还能在开发 周期过程中随时产生应用的各个部分
集成类库
它就像是客户端和服务器代码间的粘合剂我们只使用二进制协议因为它们更加有效所有配置(不管有多小)在项目创建时就已经配好了因此开发者只需将注意力集中在手头的业务问题上
客户端组件
Fiamingo有一些非可视化组件它们通过提供校验将多个请求捆绑到一个请求中等等来简化开发过程Flamingo中比较有意思的特性之一是动态 持久化方法这些方法可以使开发者以直观的类英语的方式来查询数据库而不是使用SQL(实际上SQL是由Flamingo在运行时创建出来的)这一 特性本身就可以极大地推进开发效率
Igor和Fima继续论述了它是如何工作的
我们用Maven来组织和创建项目我们的Maven启动向导会询问关于项目不同方面的几个问题比 如服务器端技术(Seam/Spring)客户端技术(Flex/JavaFX)数据库类型位置证书以及基于前面选项的一些其他问题接着 一个Maven项目就被创建了这一项目包含了一个小项目必须的所有组件如单元测试持久化单元以及工作屏(working screen)这里使用的是标准Maven命令这样在几分钟之内一个新的全配置项目诞生了
InfoQ询问了在结合RIA技术时Spring和Seam的对比
Spring/Hibernate和Seam/JPA组合都是使用Flamingo和 Flex/JavaFX实现RIA应用的可行解决方案选择哪一种后台技术通常取决于给定组织的文化及基础架构以及开发团队的偏好而不取决于某些特定特 性通常Seam和Spring是难于比较的即使它们在某些方面是相互重叠的它们被设计用于不同的目标Flamingo试图保持中立无论选择了 哪种后台技术Flamingo都尽力给于同等的支持我要说的是如果一个组织在选择Java企业平台的时候考虑的是丰富的支持他们有选择Seam的自 由否则Spring/Hibernate组合应当被考虑在内
Igor和Fima评述了谁应该考虑使用Flamingo
目标客户是企业及企业级应用开发者我们看到了RIA技术在企业级得到了广泛采用——比如不同风格的 AJAX通常AJAX技术与基于Java的后台系统能够很好的集成我们开发了一个这样的企业解决方案——RichFaces它结合了JSF (JavaServer Faces)和AJAX可是虽然没有探究AJAX的利弊我们还是明确地看到了企业开发组织中对另一套解决方案如Flex的巨大需求 Flamingo使得企业中从事Java工作的人们可以很容易地使用Flex和Java创建一个新的应用
而且在开源方面
我们已经从事开源事业很长时间了已经看到了这一社区及这一方法的巨大力量
InfoQ询问了关于Flamingo如何支持敏捷开发的更多细节
集成
这是今天我们所拥有的它提供了使用Flex或JavaFX与Seam或Spring相结合的无缝开发过程消除了不使用Flamingo时所需的所有手工编码其结果是开发过程更加容易快捷及廉价
敏捷RIA平台包括一套高级工具
为了迎接敏捷或快速开发的挑战像Ruby on Rails和Grails这样的技术解决方案出现了尽管这些都是非常好的框架但是它们对于RIA应用开发并不擅长而这正是能产生项目及简单工作屏 (screen)的Flamingo代码向导的长项Flamingo的下一版将公布更加强大的工具同样所有由Flamingo产生的服务器和客户端 组件立马就可使用减少了项目启动时间Flamingo第三个敏捷方面的内容是其客户端组件这些组件有可以用客户端上极其简单的编码模式来创建访问数 据库的运行时请求这一能力本身节约了大量时间如果你将Flamingo的所有这些方面结合在一起它绝对会为组织提供一个称心如意的敏捷开发平台
随取随用RIA开发平台
这包括提供一套预构建的组件(可视的和非可视的)以及一套预构建的应用程序组件(比方说用于数据访问/导航的dVersion)