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:511055
用户头像

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

关注

评论

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

弹性调度助力企业灵活应对业务变化,高效管理云上资源

阿里巴巴云原生

阿里云 云原生 弹性计算

Seata 2.x 首个版本正式发布,支持 Raft 集群模式

阿里巴巴云原生

阿里云 云原生 seata

服务器如何配置支持history模式

百度搜索:蓝易云

云计算 Linux 运维 云服务器 history

CentOS 8上使用NVM安装特定版本的Node.js教程

百度搜索:蓝易云

Linux centos 运维 Node 云服务器

阿里云 ACK One Serverless Argo 助力深势科技构建高效任务平台

阿里巴巴云原生

阿里云 云原生

恭喜 Nacos 和 Sentinel 荣获 2023 开源创新榜“优秀开源项目”

阿里巴巴云原生

阿里云 云原生

Jira 母公司全面停服 Server 产品,用户如何迁移至极狐GitLab

极狐GitLab

Linux 中常见目录的作用

emanjusaka

Linux 目录

ubuntu系统如何查看已安装cudnn版本

百度搜索:蓝易云

Linux ubuntu 运维 云服务器 cudnn

MSE Nacos:解决敏感配置的安全隐患

阿里巴巴云原生

阿里云 微服务 云原生 nacos

秒速出图!体验 TensorRT 加速 Stable Diffusion 图像创作

阿里巴巴云原生

阿里云 云原生

画眉(京东科技设计稿转代码平台)介绍

京东科技开发者

推荐收藏 | 【Git实战专题】「必坑宝典」带你深入剖析Git操作指令下的奥秘原理和运作机制

洛神灬殇

Java git 原理分析 后端处理 2024年第十八篇文章

文心一言 VS 讯飞星火 VS chatgpt (184)-- 算法导论13.5 1题

福大大架构师每日一题

福大大架构师每日一题

面试官:Redis持久化能关吗?怎么关?

王磊

Java 面试题

可观测实践丨如何利用 AI 算法解决告警配置三大难题?

阿里巴巴云原生

阿里云 云原生 可观测

魔搭×函数计算:一键部署,缩短大模型选型到生产的距离

阿里巴巴云原生

阿里云 云原生

【2024开年必备】最全面的Macbook/苹果电脑必备实用软件推荐

Rose

苹果软件 装机必备 Mac应用

Rainbond v5.17 版本发布,统一管理离线镜像和私有仓库

北京好雨科技有限公司

Kubernetes 云原生 容器云 离线

2023启示录丨我的大模型创业这一年

自象限

创业 #大模型

FlagData 2.0:全面、高效的大模型训练数据治理工具集

mr.well

NLP 大模型 LLM模型 #大模型

随想2024.01.21

hackstoic

精力管理

一些无人不知的命名规范

小魏写代码

2023年的技术总结和工作反思

智趣匠

年终总结

活动回顾丨阿里云云原生 Serverless 技术实践营西安站 PPT 下载

阿里巴巴云原生

阿里云 Serverless 云原生

Nacos 在云原生架构下的演进

阿里巴巴云原生

阿里云 云原生 nacos

云消息队列 Kafka 版阿里云 SAE 2.0 正式商用:极简易用、百毫秒弹性效率,降本 40%生态谈第一期:无代码转储能力介绍

阿里巴巴云原生

阿里云 Serverless 云原生

texifier mac LaTeX编辑工具下载安装(原Texpad)

Rose

Mac软件 LaTeX 编辑器 Texpad Texifier激活码

为什么人工智能与软件测试的结合话题开始火爆

测试人

软件测试 自动化测试 测试开发

改变命运的抉择

少油少糖八分饱

小说 命运 东野圭吾 推理小说 悬疑

从内核的视角观测容器——SysOM 容器监控

阿里巴巴云原生

阿里云 云原生 容器服务

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