NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

  • 2008-04-02
  • 本文字数:2837 字

    阅读完需:约 9 分钟

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 等嵌来嵌去,很罗嗦,通过我们提供的布局组件可以很好地解决这些问题。

  1. AOM 2.0 里面融入了我们新的编程思想—— IoVC (Inversion of View-Control,即“视图控制反转”,换言之:它能够把对“View【即 UI 视图】的控制力”注入到你的后台业务逻辑中。这样一来,你在编写业务逻辑的过程中,对 View 拥有足够的控制力,从而能够将展现层与业务逻辑完全的解耦),这是我们想着重强调的。通过这个编程思想,能够让你的整个系统可维护性和可扩展性得到显著增强。
  2. 然后就是和 Elite 这个语言的结合,这是一个集命令式和函数式风格为一身的面向对象的程序设计语言,既有高阶函数(first-class functions)、列表推导(list-comprehension)、模式匹配(pattern-matching)、延时求值(lazy-evaluation)等函数式语言所具有的语言特征,又具有和 Java 相近的语法结构。
  3. 最后就是对 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,可以从他们的网站上阅读更多的信息。

2008-04-02 19:511051
用户头像

发布了 150 篇内容, 共 43.4 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

BRC-20铭文发行合约系统开发:深度思考与逻辑性

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

TunesKit Screen Recorder for mac(录屏软件)v2.6.0直装版

影影绰绰一往直前

Serial Box for Mac(软件序列号查询软件)v2024.03激活版

影影绰绰一往直前

adobe 系列应用出现Error无法继续安装,文件已损坏,无法打开解决方法

Rose

已解决org.springframework.web.bind.MissingRequestHeaderException缺少请求头异常的正确解决方法,亲测有效!!!

小明Java问道之路

ProPresenter for Mac(现场分屏演示工具) v7.16.1汉化版

iMac小白

PullTube for Mac(在线视频下载器) v1.8.5.27中文激活版

iMac小白

不会使用ps怎么办?适用于苹果Mac的最佳Photoshop替代品

Rose

Mac延长电池的使用寿命AlDente for Mac电池最大充电限制工具

iMac小白

System Toolkit for Mac(mac系统维护软件)v6.1.0中文激活版

影影绰绰一往直前

什么是 web 应用的 type-ahead search help

秃头小帅oi

全栈开发(TS,React,Vue, Java, 移动端flutter)接单

hz

FastScripts for Mac(脚本调用工具) v3.3.1激活版

iMac小白

Topaz Photo AI for Mac(人工智能降噪软件)v2.4.0激活版

影影绰绰一往直前

万字带你走过数据库的这激荡的三年

不在线第一只蜗牛

数据库 开发 数据集

Mellel 6 for Mac(文字处理软件) v6.0.3中文激活版

iMac小白

2024-03-02:用go语言,一个句子是由一些单词与它们之间的单个空格组成, 且句子的开头和结尾没有多余空格, 比方说,“Hello World“ ,“HELLO“ ,“hello world h

福大大架构师每日一题

福大大架构师每日一题

NTFS Disk by Omi NTFS for Mac(NTFS 磁盘管理器) v1.1.4激活版

iMac小白

面试官:说说SSO单点登录的实现原理?

不在线第一只蜗牛

程序员 面试 SSO 单点登录

10个技巧,3分钟教会你高效寻找开源项目

快乐非自愿限量之名

开源 项目开发

AI实战 | 由浅入深,手把手带你实现Java转型学习助手

EquatorCoco

Java 人工智能 AI AI技术

苹果电脑新手教程:如何开启任何来源选项

Rose

mac电脑 苹果电脑 任何来源

实时数据驱动:API商品数据接口的三重保证,助力您的业务飞跃

Noah

AnyMP4 iPhone Unlocker mac中文激活版 专业iPhone解锁工具

iMac小白

苹果电脑有哪些好用的修图软件?

Rose

修图 抠图 Mac软件 照片编辑

Photomator for mac(照片编辑器) v3.3.2中文版

iMac小白

Middle for Mac(触控板和鼠标增强工具) v1.8.4免激活版

iMac小白

Disk Drill for Mac(数据恢复软件)v5.4.1426中文激活版

iMac小白

AI会夺走程序员的饭碗吗?

算AI

#人工智能

安装mac软件时提示已损坏,无法打开,应该移到废纸篓的解决办法

Rose

聊聊 HTTP 性能优化

EquatorCoco

性能优化 网络协议 HTTP

AOM 2.0 M2版本融入IoVC编程思想和Elite语言_Java_宋玮_InfoQ精选文章