1. 开源ERP系统iDempiere助力中小企业发展【2】

说说iDempiere = OSGi + ADempiere的OSGi

 

我对iDempiere还完全摸不着头脑,正好在学习之际,应erp100的@纵横四海 邀请,以一个初学者的身份来开始写一下自己的学习过程。本文同发这里和erp100,erp100的网页地址如下:

[分享知识 原创连载] iDempiere = OSGi + ADempiere 一款ERP系统、助力中小企业发展  】


在我发了第一篇iDempiere简介之后,@纵横四海 又帮忙添加了OSGi这个标签,那这次就让我说一说我对OSGi的认识吧。毕竟iDempiere = OSGi + ADempiere这个等式的存在也意味着OSGi的重要性,所以我开始尝试理解这里的OSGi对iDempiere到底有什么帮助、如何让iDempeire更具有生命力。

  1. 什么是OSGi

    好象很久前就开始知道这个词,但是由于它和JavaEE(J2EE)走的是两条路,而我更关注企业级解决方案,所以也没有太多关注。但是OSGi优秀的机制是很多解决方案无法简单比拟、超越的,应该是在2000前后年吧,有很多人追求可热插拔机制在企业级应用中的使用,于是OSGi无疑成了一些大牛们的选择(例如Richard S. Hall?)。同时大家好象都说应该是Eclipse给了OSGi活跃发展的一个强大契机,Eclipse的插件系统就是完全基于OSGi的杰作,如今OSGi更是企业级解决方案中重要的基础平台之一,并且OSGi也从“JAVA虚拟机中的SOA”走到了今天这个真正的SOA的高度。

     

    非常惭愧、似乎什么也没有吹出来,但是还是要抓紧说一下OSGi到底是什么?让我引用【OSGi in Action】

    这本书的说明。著者:Richard S. Hall、Karl Pauls、Stuart McCulloch、David Savage

    首先:

        NOTE Once upon a time, the letters OSGi were an acronym that stood for the Open Services Gateway Initiative. This acronym highlights the lineage of the technology but has fallen out of favor. After the third specification release,the OSGi Alliance officially dropped the acronym, and OSGi is now a trademark for the technology.

        也就是说由于OSGi发展已经超越了最开始的定义,所以Open Services Gateway Initiative已经不合时宜,OSGi只是一个标识这个伟大平台的标志而已。

     

    注:当写到这里的时候突然发现,原本想把书中OSGi的定义拷贝下来,但是发现一旦拷贝到这里来的话,似乎很容易让人误解OSGi并么有什么了不起,毕竟这里不是说OSGi的地方。我还是介绍我买的两本书,如果想知道OSGi的伟大的话,还是从书中找答案吧(只是想宏观看的话,新华书店站一站,只看OSGi in Action的第一章就可以让你汹涌澎湃了吧)

     

         

     

  2. ADempiere+OSGi → iDempiere有什么好处?

    这里应该是想要说的重点,我个人觉得由于让ADempiere基于OSGi,不仅仅是ADempiere的架构更加合理,因为这点毕竟主要是对系统工程师比较有意义,对更多人来说更有意义的可能是用热插拔方式来动态扩展ADempiere,同时针对添加的OSGi组件,如果方法得当的话很有一定的可能绕过GPLv2的限制,实现组件商业化。

    注:我不太确定这点,还需要去咨询法律顾问,让他们来考虑并给出个可信的回答啊。

     

  3. iDempiere = OSGi + ADempiere

    写到第2节,其实就可以结束了,这里只是追加做点说明,让人对iDempiere的OSGi有点可视化的印象。当你用Eclipse打开iDempiere源码后,完全可以使用PDE Incubator Dependency Visualization来可视化的看看他的架构。这里以把我平时写的一小段博文贴进来,分享一下。iDempiere OSGi Bundle的倚赖关系可视化分析(使用Eclipse PDE Dependency Visualization)

    虽然这个等式iDempiere = OSGi + ADempiere代表着全面拥抱OSGi,可惜还是没有搞明白,还好参看IBM的网站,找到了可以对OSGi Bundle倚赖关系进行可视化分析工具(PDE Incubator Dependency Visualization的相关说明。针对org.adempiere.server的分析结果如下:

     

    原文地址:http://www.cnblogs.com/Yu/archive/2013/06/06/3121249.html

     

  4. iDempiere架构到底怎么样?

    OSGi是牛的,但是并不等于iDempiere架构一定是牛的,就好像用C++也完全有可能写出比VB更慢的软件一样。至少从我个人掌握的内容来看,iDempiere 也不是让人感觉很满意。这也许是iDempiere牛人时间不够的原因,更有可能是我比较弱没有理解人家深刻的含义。不过,自己到底不满意什么呢,仔细想想,其实不外乎一个词儿,粒度太粗。但是谁需要更细粒度、更优雅呢?粒度更细本身就代表着一个错误的方向也说不定。至少对大多数人来说,说的极端一点的话,可能我只需要一个可扩展的Bundle,他的名字叫ERP就行了也说不定。

     

     更进一步说,这样的架构已经足以PK掉很多开源ERP软件,足以用这样的架构来助力中小企业发展。

     

发布对象菜单: