|
全生命周期支持的集成式开发环境:OperaMasks Studio
1. OperaMasks Studio 6.0的起源2009年5月,OperaMasks Studio 6.0正式发布。OperaMasks Studio 的前身是金蝶中间件公司的 Apusic Studio,在Apusic Studio发展到 v5版本时,金蝶中间件公司决定将 Apusic Studio更名为 OperaMasks Studio,与 OperaMasks SDK共同组成完整的Web开发解决方案。在其官方站点上,金蝶中间件公司将OperaMasks Studio定义成: 全生命周期支持的集成式开发环境 。 此处所谓的全生命周期支持,一是指 开发模型的全生命周期支持 ,一是指 开发过程的全生命周期支持 。本文,将对“全生命周期支持”给予解读。 很多不同行业的信息化应用,是有其鲜明的行业特征的。但多数的、常规的应用系统,其开发模型可以简单抽象成以下三个层次: ![]() Figure 1. 常规应用的编程模型
针对上述的开发模型,OperaMasks Studio是怎样予以支持的呢?在 OperaMasks Studio 6.0 欢迎页中的一个流程图,能够比较直观的反应这一点: 概括来说,OperaMasks Studio对数据持久层的Hibernate、JPA技术,对业务逻辑层的Spring、EJB 3技术,对展现层的 OperaMasks 技术,都给予了非常好的支持。由于篇幅所限,本文无法详细展开介绍,仅罗列一二特性: 2.1. 数据持久层支持应该说 OperaMasks Studio对数据持久层的支持是非常不错的,包括这样几个挺有意思的特性:
OperaMasks Studio对业务层的支持主要包括对 Spring 及 EJB 3的支持。这里简单的列举如下:
2.3. 对UI展现层的支持OperaMasks Studio对UI展现层的支持,是最具特色的,也最值得笔者一提。 上世纪90年代,类似于 VB、Delphi的RAD工具大行其道,究其原因是:在UI设计上,基于C/S架构的UI,其运行期状态与设计期状态,保持着高度的一致性。但在B/S架构下,情形则完全不那么一回事了,由于在Web页面中嵌入了大量的可执行代码,使得Web UI的运行期与设计期经常是大相径庭。此时,Web UI的可视化设计,则成为了一种“吸引眼球”的幌子,但在实际使用效果上,作用不大。尤其是在面对复杂的Web UI开发时,程序员基本上是面向代码编程,此时的可视化设计,形同虚设。 OperaMasks Studio,则在“可视化编程”与“基于代码编程”这两者之间,把握了一个较好的平衡。
上文分别从“数据持久层”、“业务逻辑层”、“UI展现层”三个方面,介绍了OperaMasks Studio对“开发模型的全生命周期支持”,下面,来探讨一下“开发过程的全生命周期支持”。 一个典型的J2EE应用,可能需要经历如下开发阶段: ![]() Figure 3. 开发过程描述 在这几个阶段中,最能引起程序员感触的恐怕是重启应用了。更改了某个配置文件,需要重启应用甚至重启服务器;更改了某段Java代码,也需要重启应用或者服务器;总之,我个人感觉,程序员在等待应用部署就绪的时间,似乎比写程序的时间还要长一些,尤其在使用诸如WebSphere、WebLogic这种“重量级”的应用服务器时,这可真具有一定的讽刺意味。 以下,简单介绍一下OperaMasks Studio对上述开发过程各个阶段的支持: OperaMasks Studio 对开发的支持,似乎不用过多赘述,前文所介绍的内容通通都是开发过程的一部分,这里只简单提及的是,OperaMasks Studio基于Eclipse技术,你同样可以把你所喜欢的其它插件放到 OperaMasks Studio中,以达到功能扩展的目的。譬如,你可以把 Struts 的插件集成到 Studio中,在保留OperaMasks Studio对 Hibernate、Spring的功能外,获得对Struts的支持,从而开发基于SSH(Spring + Struts + Hibernate)的应用。 3.2. 配置J2EE应用配置的复杂度,是另一个让人诟病的地方。写一个EJB,要配置ejb-jar.xml;做一个Web应用,要配置web.xml,甚至打包成一个ear,还需要配置application.xml,实在是让人颇有些抓狂。举个笔者的切身体会,作为一个从事J2EE研发近十年的老兵,我从来记不住在web.xml中配置Listener和Servlet时,是Listener在前面,还是Servlet在前面?要知道顺序颠倒,应用是无法正常启动的。 OperaMasks Studio对这些配置工作进行了大幅简化,你只需要通过可视化的界面进行操作即可。 ![]() 所有的应用服务器厂商都提供了部署工具,能够允许你方便的把你的应用部署到服务器上。但在OperaMasks Studio中,这一动作似乎是不存在的,或者说,你感觉不到。因为你在开发过程中,按CTRL + F11以访问其中的某个页面时,Studio会自动启动应用服务器;如果应用没有部署,会将应用自动部署上去;部署成功后,还会再自动打开浏览器,以访问你要运行的页面。 当然,如果你一定需要“部署”这个动作,可以对准工程点击右键,选择相应的菜单: ![]() 甚至于,你还可以打开“Apusic 服务器管理”透视图,查看当前部署了哪些应用,并执行各种对Apusic应用服务器的管理操作。 ![]() 还需要提及的是:OperaMasks Studio的部署行为,是基于文件目录形式的部署(没有打包、上传的动作),其部署过程是简单、轻量、快速的。 忽然想起Sun公司某款基于NetBeans的开发工具,部署过程是用Ant完成的,在Ant执行过程中,除了进行正常的清理、编译外,还会将应用打包成war或ear,然后再上传到目标服务器中进行部署,甚为耗时,笔者看完以后颇有些瞠目结舌。或许这才是所谓的“标准的J2EE部署过程”?再或者只是笔者不会用的原因吧,感慨一下。 3.4. 调试应用部署到服务器以后,自然就可以运行测试以检验你的工作成果了。这里笔者要介绍的是“调试”技术。并不是每一个程序员都需要调试,如袁红岗先生似乎就很少用到调试器:-),但笔者认为:拥有一个好的调试器,对程序员来说是一件幸事。 坦白说,OperaMasks Studio在调试上,和常规的Eclipse调试技术并没有什么不同。但这里,笔者忍不住要提醒的是:很多程序员用了OperaMasks作为Web展现层技术,就忘记JSP的存在了。要记住,OperaMasks 并非是要淘汰JSP或Servlet,相反,OperaMasks技术和JSP/Servlet相辅相承,互为补充;在同一个Web应用中,既可以使用OperaMasks技术,也可以继续保留你原有的 JSP/Servlet技术,诸如做个 Listener或者Filter之类的。下图列出 OperaMasks Studio对 JSP页面的调试功能: ![]() 如上文所述,写程序总是一个不断的开发、测试的循环过程。当发现Bug并予以修复,或者新增某个功能时,势必要重新部署应用。但笔者非常不欣赏的是:频繁的重新启动应用服务器,因为这是一种很奢侈的行为。笔者个人的开发经验如下:
3.6. 上线期诊断一种并不科学但现实中却往往存在的情况是:程序上线时,才会发现许多没有暴露的问题,如数据库连接泄露、因应用写的不当而造成的数据库死锁等。 OperaMasks Studio提供了数据源连接监控、数据库死锁分析等工具,能够给用户提供一些上线期诊断的辅助手段。 ![]() 4. 补充说明在上文中,我们分别从“ 开发模型的全生命周期支持 ”,以及“ 开发过程的全生命周期支持 ”两个层面,介绍了 OperaMasks Studio是如何让“ 全生命周期支持 ”这个特性落地的,希望通过本文的描述,能够使各位读者对OperaMasks Studio有一个感性认识,在本文的最后,不妨对 OperaMasks Studio的几个常见问题简单阐述一下: 是的,OperaMasks Studio建立在Eclipse技术之上(当前版本是Eclipse 3.3.1),我们从来没有否认过这一点。在这里也感谢Eclipse.org组织,倘若没有Eclipse,以金蝶中间件公司目前的实力,想凭一己之力完成一个集成式开发环境(IDE)的研发,恐怕要多费不少的周折。 4.2. OperaMasks Studio是开源免费的吗?目前,OperaMasks Studio是免费使用的,但还没有开源。在下一个阶段,我们可能会将OperaMasks Studio开源,具体时间与阶段,要看一些环境与条件的准备情况,笔者初步预期是下一个重要版本。 是的,OperaMasks Studio目前只支持金蝶Apusic应用服务器,我们也从来没有否认过这一点。但需要澄清的是:OperaMasks SDK(也就是常规意义的OperaMasks 技术)是支持各种J2EE应用服务器的(请参考 http://www.operamasks.org/topic/content/deploytopic.faces ),但目前的 OperaMasks Studio只支持 Apusic 应用服务器。这纯粹属于工作量的问题,和心态开不开放没有太大的关系,和所谓的“背后隐藏的不可见人的商业目的”更没有关系。同时,我们也从来没有否认过,金蝶中间件公司是一家商业公司,作为商业公司,我们总会有自己的商业目的与合情合理的商业追求,但我们一旦决定了要把OperaMasks 开源,就会一直报以开放、积极的心态,长期的坚持下去。 在 OperaMasks Studio 6.0版本,内置了一个 Apusic 应用服务器的教学版,你完全可以在这上面开发测试,等你的应用开发完毕以后,如果你希望部署到其它的服务器,那么,你可以把应用拿出来单独打包,往其它的服务器上部署,这也是完全没有问题的。但是,笔者忍不住向您推荐一下:为什么不保持一下您的好奇心,试试我们的Apusic应用服务器呢? 4.4. 参考资料最后想说的是:无论是OperaMasks SDK,还是OperaMasks Studio,虽然已经比较成熟与稳定,但对于国内的开源环境来说,它依然是一朵温室里的小花,希望能够得到您的善意的批评、指正与建议,以使我们能够长期的坚持下去,真正为国内的开源事业做出点事情。 OperaMasks.org网站已经录制了若干关于 OperaMasks Studio的视频,可以从 http://www.operamasks.org/learning/index.faces 获得。 更多 OperaMasks Studio信息,请参考官方网站: www.operamasks.org 所有评论
大道至简
2011-03-09
评论道:
写的好!有点相见狠晚的感觉,支持国产的开源项目!
david
2009-08-27
评论道:
参阅啦,不错。就是不知道现在工程部署后运行稳定性是否有了提高
mfkvfn
2009-06-09
评论道:
已阅。Kevin的文采和他的开发技术一样的出色
1 共1页
您还没有登录,请登录后发表评论
|
相关文章
|
















