`
xzy_love
  • 浏览: 32902 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

AOM 2.0 M2版本融入IoVC编程思想和Elite语言

阅读更多

Apusic OperaMasks(简称AOM)是由OperaMasks.org组织(由金蝶中间件公司创建的一个独立的非盈利性法人实体)所提供的开箱即用的Web Framework,它以JSF为基础引擎,辅以独创的原生Ajax技术,同时提供丰富的组件和集成开发环境,使Web开发变得简单方便。其网站上是这样描述AOM的:

无论是后台的事务、存储、分布式计算等基础服务,还是前端的UI展现与用户交互,以及后台与前端的会话过程,Apusic OperaMasks都提供了完整的解决方案,有效解决Web开发所面临的问题:

  • 开箱即用:使用Apusic OperaMasks进行Web开发,开发人员只需掌握基础的J2EE知识!
  • 引擎:提供标准的JSF引擎,JSF是已经得到业界认同的一种主流组件技术,能够很容易适应各种未来需求的变化,其精髓就是“与表现层无关的表现层技术”;
  • 原生Ajax支持:从容器级别对Ajax予以支持,对Apusic OperaMasks用户来说,要使应用具备Ajax特性,付出的成本是零;
  • Rich Component:Apusic OperaMasks提供给用户丰富的Rich Components,用户可以用各种组件来组织数据、展现数据、编辑数据;
  • 开发工具:提供开发工具Apusic Studio的支持,“所见即所得”的可视化设计,一体化的开发、配置、部署、调试、监控的集成开发环境;
  • 跨浏览器支持:Apusic OperaMasks完全兼容业界主流浏览器,如IE、Firefox等;
  • 开源社区:所有源码甚至是开发过程自身,全部通过OperaMasks.org开放,代表了J2EE社区开放和敏捷的力量!

3月28日AOM发布了2.0 M2版本,InfoQ中文站在29日CSDN举办的软件技术英雄会期间与其技术总监张勇进行了交流,并就AOM的现状及未来发展对他进行了采访。

AOM所要解决的问题是什么?

如果将网站基于BS架构的分成两类,第一类是以信息浏览为主要的,比如搜狐、新浪这样的,我们称之为Web Site;第二类是以BS架构为载体,但所承载的是一种应用,强调的是客户和系统之间的高交互性,他有非常复杂的操作和流程逻辑,我们将这种应用称为Web Application。而AOM就是适合做Web Applicationd的一种工具。

为什么AOM要选择JSF作为基础框架?

这是一个机缘巧合的问题,之所以选择JSF,这是由金蝶当初的定位决定的。作为一家J2EE服务器提供厂商,在通过了Java EE 5.0认证之后,那么金蝶就需要有JSF的实现,因为JSF已经是Java EE 5.0的一部分。在做JSF的时候,我们认识到JSF的优雅之处,但是也感觉到其过于理想化和不现实的地方,这也是那些批评JSF的人所引以为诟病的地方。JSF是一个服务器端编程模型,而AJAX是客户端的,后来袁红岗创造性地用Render Kit将JSF和AJAX结合起来,应用在AOM中。其实AJAX并没有什么什么创新之处,开发人员在做AJAX应用的时候还是要写大量的JS代码。而AOM解决了这个问题,通过JSF的Render将AJAX进行封装,对开发人员透明,从而只需要关注业务逻辑。这也是J2EE Without AJAX这个口号的由来。现在通过AOM,你可以做到应用基于JSF,但同时具备AJAX特性。

为什么JSF没有形成主流?

第一JSF规范没有得到业界的接受。因为在规范的制定上,JSF是基于HTTP的,一个很简单的Hello World示例,都需要传递几十K的字节,而我们一个普通的Hello World应用几K就可以了。这一点导致了JSF没有迅速成为主流。第二是Java世界已经有了很多可以解决类似问题的框架。

AOM如何克服JSF的弊端?为什么AOM并没有被更多人所接纳?金蝶在AOM方面有没有可以分享的案例?

我们对规范的细节做了改进。在状态方面我们花了很大的力气来消除状态。在JSF规范里面状态是有6步的,而AOM里面又多加了一步Build Tree。在生命周期这一部分做了动作。现在这个数据的传输量就比较小。

虽然现在我们在JSF之上做了很多的扩充,但基本没有违背JSF这个规范。至于日后AOM是否要脱离JSF,发展成一个独立的解决方案,还是继续遵循JSF,我们在考虑,但还没有做最终的决定。我们希望其他更多的个人和企业参与到这个决定中来。

至于AOM为什么目前没有被更多人所接纳,我认为有两个因素,第一个因素是推广力度不够;第二是国人对国人自己的民族软件还缺乏信任。

在网上我们已经放了一些关于使用AOM的案例;金蝶规划的下一代ERP产品会考虑基于JSF来设计。

为什么AOM是开源的框架,但是却只放在自己的网站上,而没有放在大家更为常用的国际性的网站,如SourceForge上等?AOM采取的是什么开源协议?

之所以放在自己的网站上是因为当时考虑到在国内访问SourceForge等这样的网站速度很慢,而且稳定性也不是特别好。而我们自己的网络环境比较好,另外大部分开发人员是金蝶自己的员工。其实AOM的CVS是对外公开的,我们很希望有更多的人能够参与进来,而不是成为金蝶一家公司的事情。

而且,我们也没有提供比较好的英文文档,因为我们的团队里面绝大部分人员都是中国人,虽然有一些海归人士,但是使用的语言还是中文,这是我们比较欠缺的地方。另外因为开发上的压力比较大,所以在文档化方面做的并不理想。即使我们将AOM国际化了,我在也没有能力在国际上去推广。我们计划在08年7月份正式走向国际化,有可能会任命一个国际化产品经理。

AOM现在采用的是LGPL。从前是GPL,但因为有很多厂商不习惯用这个协议,即自己在AOM之上做了开发要必须将自己的源代码再次公开,限制比较多。所以现在改用LGPL了。

AOM下一步打算做哪些事情?

最近我们发布了一个里程碑式的版本,也就是AOM 2.0M2,包含以下新的特点:
  1. 组件更加丰富。不仅有Tree、Table等这些常用的组件,还有各种各样的布局组件。要知道在HTML里面写布局是非常麻烦的,Table、DIV等嵌来嵌去,很罗嗦,通过我们提供的布局组件可以很好地解决这些问题。
  2. AOM 2.0里面融入了我们新的编程思想——IoVC(Inversion of View-Control,即“视图控制反转”,换言之:它能够把对“View【即 UI 视图】的控制力”注入到你的后台业务逻辑中。这样一来,你在编写业务逻辑的过程中,对View拥有足够的控制力,从而能够将展现层与业务逻辑完全的解耦),这是我们想着重强调的。通过这个编程思想,能够让你的整个系统可维护性和可扩展性得到显著增强。
  3. 然后就是和Elite这个语言的结合,这是一个集命令式和函数式风格为一身的面向对象的程序设计语言,既有高阶函数(first-class functions)、列表推导(list-comprehension)、模式匹配(pattern-matching)、延时求值(lazy-evaluation)等函数式语言所具有的语言特征,又具有和Java相近的语法结构。
  4. 最后就是对AOM 2.0从前的一些不足之处做得修正。
另外,AOM 2.0M2中包含了一个Apusic Studio 5.1 M5,它是一个All In One的版本。

由于2.0里面包括了很多创新性的地方,目前我们不会在上面再做创新,而是要将2.0稳定下来。我们现在在规划3.0,比如是否要往Web Site方面努力,以及是否要让ELite和AOM有更好的结合等。

如果想进一步了解Apusic OperaMasks,可以从他们的网站上阅读更多的信息。

分享到:
评论

相关推荐

    QTP/UFT AOM

    AOM 通过engine.vbs 启动UFT。

    QTP AOM帮助文档

    使用QTP的automation object model,可以对QTP进行自动化编程,从而自动对QTP进行选项设置、自动运行测试(或组件),而无需使用QTP界面手工进行这些操作。 如果要重复多次的完成同一项工作任务,或重复多次运行同一...

    AOM java原代码下载

    "AOM源代码文件,AOM2.1源代码下载"描述进一步确认了这是AOM的一个特定版本——2.1版的源代码。 在Java开发中,源代码通常被组织成多个包(package),这些包包含了相关的类(class)和其他资源文件。在提供的压缩...

    aom-v1.0.0.errata.1.tar.gz

    标题 "aom-v1.0.0.errata.1.tar.gz" 指的是一个名为 "aom" 的开源项目,其版本为1.0.0的错误修复更新(errata)第一版,并以tar.gz格式打包。这个压缩包包含了项目的一些核心文件和文档,表明这可能是用于开发或维护...

    aom.zip_3344aom_aom.avcom_av1_h264_zip

    标题 "aom.zip_3344aom_aom.avcom_av1_h264_zip" 暗示了这是一个与视频编码相关的压缩文件,其中包含了AV1编码器的源代码,可能还有与H264编码的对比或转换相关的资料。描述 "av1 codec source open c++" 明确指出这...

    AOM之十二款(EXT样式)漂亮皮肤

    各位AOM的爱好者,AOM目前采用的默认EXT皮肤很漂亮,但是从1.0用到2.0再用到2.3,想必各位的项目都已经成熟稳定了,这时候很多人想锦上添花,让自己的项目更加出众一些,那就要在外观上做一些美化了。 遗憾的是,...

    AOM 初体验(一)

    标题"AOM初体验(一)"以及描述中提到的工程打包下载,暗示了这是一个关于应用开发和集成环境的讨论,特别是涉及到AOM(可能是Apusic Application Object Model,一种中间件平台)的使用。标签"源码"和"工具"进一步...

    编译android VLC时,需要的组件:aom-v1.0.0.errata.1.tar.gz

    在这个过程中,`aom-v1.0.0.errata.1.tar.gz`是一个重要的组件,它是Google开放媒体联盟(Alliance for Open Media, AOMedia)的AV1编码器开源实现——AOMedia Video 1(AV1)的一个版本。AV1是一种高效、开放标准的...

    aom-v1.0.0.errata.1.zip

    "errata"通常用于标识软件发布中的错误或修正,这意味着这个压缩包可能包含了针对aomedia(aom)v1.0.0版本的一些修复或改进。"1"可能是修正的序列号,表示这是第一次更新。 描述中提到"aom-v1.0.0.errata.1.tar.gz...

    AOM相关.rar

    标题"AOM相关.rar"指的是与AOMedia(简称AOM)相关的资料集合,这通常涉及到音视频编码技术,特别是AV1编码标准。AOMedia是一个开放的非营利组织,致力于开发下一代开源、免专利费的媒体编码技术,旨在提供高质量的...

    海洋沉积物甲烷厌氧氧化作用(AOM)及其对无机硫循环的影响

    海洋沉积物甲烷厌氧氧化(AOM)作用是一个涉及甲烷和硫酸盐的生物地球化学过程,甲烷作为一种温室气体,在海洋沉积物中通过与硫酸盐还原菌作用被转化为二氧化碳或碳酸盐,同时硫酸盐作为电子受体被还原为硫化物。...

    AOM金蝶入门

    AOM金蝶控件开发指南,入门,供大家学习

    AOM中IE、Firefox兼容Enter代替Tab的Javascript

    "AOM中IE、Firefox兼容Enter代替Tab的Javascript"这个主题关注的是如何在不同的浏览器环境中,尤其是IE和Firefox中,使用JavaScript实现按下回车键(Enter)时模拟Tab键的效果,以实现元素间的焦点切换。 首先,我们...

    aom-v1.0.0.errata.1.tar.rar

    标题中的"aom-v1.0.0.errata.1.tar.rar"表明这是一个关于AOMedia(AOM)项目,版本1.0.0的错误修复(errata)压缩文件,采用了tar和rar两种压缩格式。AOMedia是一个开放源代码的多媒体编解码器开发组织,致力于推动...

    X-AOM权识区块链新经济 -泛AI时代投资多元的解决方案.pdf

    【X-AOM权识区块链新经济 - 泛AI时代投资多元的解决方案】 X-AOM权识区块链新经济项目旨在利用区块链技术,特别是在泛人工智能(AI)时代,为投资者提供多元化投资的策略。该项目的核心目标是建立一个全球化的平台...

    AOM中的常用JavaScript

    AOM是Web开发领域中一个非常重要的概念,它与DOM(Document Object Model)和CSSOM(CSS Object Model)一起构成了现代Web开发的基础框架。在本文中,我们将深入探讨AOM中的常用JavaScript知识点,并结合`mainJs.js`...

    X-AOM_权识区块链新经济 -泛AI时代投资多元的解决方案(英语).pdf

    文章标题提到的“X-AOM_权识区块链新经济 -泛AI时代投资多元的解决方案”是关于在人工智能(AI)时代背景下,利用区块链技术创造新的经济模式和投资策略的探讨。在这个新经济模型中,核心理念是“谁分享数据,谁受益...

Global site tag (gtag.js) - Google Analytics