Ⅰ Flex和java快速开发的Flamingo项目
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开发平台
lishixin/Article/program/Java/hx/201311/26283
Ⅱ android 为什么要用fuse
Android FUSE 的设计目的就是为了把/data分区映射成一个内部储存,使得手机的内部储存和/data分区可以共用。
还有就是,比如我要支持一个新的文件系统,比如支持NTFS,要在内核中写代码实现,而不巧的是内核态的代码非常的难写,非常的难调试。。。so。。导致整个工程都拖延在这里了,但是呢。。用户空间中编写和调试的难度小,所以非常方便,用C++ Java写都可以。
作者:何文力
Ⅲ java解决分布式存储计算
一、高性能计算
Hadoop:Hadoop的框架最核心的设计就是:HDFS和MapRece。HDFS为海量的数据提供了存储,则MapRece为海量的数据提供了计算。
Spark:Spark是UC Berkeley AMP lab所开源的类Hadoop MapRece的通用的并行,Spark,拥有Hadoop MapRece所具有的优点;但不同于MapRece的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map rece的算法。
CUDA:CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 开发人员现在可以使用C语言来为CUDA架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDA的处理器上以超高性能运行。CUDA3.0已经开始支持C++和FORTRAN。
二、Hadoop生态系统
(1)海量数据怎么存,当然是用分布式文件系统——HDFS。
(2)数据怎么用呢,分析、处理MapRece框架,让你通过编写代码来实现对大数据的分析工作。
(3)非结构化数据(日志)收集处理——Fuse、WebDAV、Chukwa、Flume和Scribe。
(4)数据导入HDFS中,RDBMS也可以加入HDFS的狂欢了——HIHO、Sqoop。
(5)MaoRece太麻烦,用熟悉的方式操作Hadoop里的数据——Pig、Hive、Jaql。
(6)让你的数据可见——Drilldown、Intellicus。
(7)用高级语言管理你的任务流——Oozie、Cascading。
(8)Hadoop自己的监控管理工具——Hue、Karmasphere、Eclipse Plugin、Cacti、Ganglia。
(9)数据序列化处理与任务调度——Avro、ZooKeeper。
(10)更多构建在Hadoop上层的服务——Mahout、Elastic Map Rece。
(11)OLTP存储系统——HBase。
(12)基于Hadoop的实时分析——Impala。
Ⅳ ant怎么编译dfs-fuse
下一步我们需要设置如下的环境变量:
ANT_HOME:ant的安装目录,如果按上面方法解压缩了ant,那么这个值应该设为D:\ant
JAVA_HOME:jdk的安装目录
PATH:把%ANT_HOME%\bin目录加到path变量,以便于从命令行直接运行ant。
(1)建立build.xml
用ant编译规模较大的工程非常方便,每个工程都对应一个build.xml文件,这个文件包含与这个工程有关的路径信息和构建任务。
下面是一个最简单的build.xml文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="projectTemplate" default="init" basedir=".">
<target name="init" >
<property name="lib.dir" value="lib"/>
<echo message="Hello ,lib.dir is set to ${lib.dir}" >
</echo>
</target>
</project>
每个build.xml有且仅有一个project,每个project下面可以包含多个target,每个target表示一个小的任务,每个任务负责执行一段脚本。ant有内置任务集可供使用,例如上面的echo就是在console上显示消息。
更详细的内置任务请参考http://ant.apache.org/manual/coretasklist.html
${lib.dir}表示引用一个名字叫做lib.dir的属性值,这个属性的值就是lib。
(2)运行ant
使用ant.bat可以直接运行ant,如果不带任何参数,ant会在当前路径下搜索build.xml文件,如果找到了这个文件,就运行project的default属性指定的target.我们也可以带参数来运行ant,以便选择build.xml文件和要运行的target:
ant -buildfile c:\demo\build.xml init
表示运行c:\demo\build.xml 中名字为init的target
(3)ant的目标依赖
target有一个属性depends,在其中可以指定一系列的target名字,表示在执行该target前,必须首先执行的一系列其它target。depends具有传递性,例如:targetA depends targetB,而targetB depends targetC和targetD,这样在执行targetA之前,首先执行C和D,然后执行B,最后才会执行A。
下面是个简单的例子,在执行编译的动作前,首先需要建立一个目标代码存放的目录,然后再执行编译。
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="project" default="init" basedir=".">
<target name="init" >
<property name="dist" value="dist"/>
<mkdir dir="${dist}" />
</target>
<target name="build" depends="init">
<javac srcdir="SourceCode" destdir="${dist}">
</javac>
</target>
</project>