说说iDempiere = OSGi + ADempiere的OSGi
怀揣着为中小企业量身定做一整套开源软件解决方案的梦想开始了一个网站的搭建。 |
我对iDempiere还完全摸不着头脑,正好在学习之际,应erp100的@纵横四海 邀请,以一个初学者的身份来开始
写一下自己的学习过程。本文同发这里和erp100,erp100的网页地址如下:
【[分享知识 原创连载] iDempiere = OSGi + ADempiere 一款ERP系统、助力中小企业发展 】
在我发了第一篇iDempiere简介之后,@纵横四海 又帮忙添加了OSGi这个标签,那这次就让我说一说我对OSGi的
认识吧。毕竟iDempiere = OSGi + ADempiere这个等式的存在也意味着OSGi的重要性,所以我开始尝试理解这
里的OSGi对iDempiere到底有什么帮助、如何让iDempiere更具有生命力。
- 什么是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的第一章就可以让你汹涌澎湃了吧) - ADempiere+OSGi → iDempiere有什么好处?
这里应该是想要说的重点,我个人觉得由于让ADempiere基于OSGi,不仅仅是ADempiere的架构更加合
理,因为这点毕竟主要是对系统工程师比较有意义,对更多人来说更有意义的可能是用热插拔方式来动态
扩展ADempiere,同时针对添加的OSGi组件,如果方法得当的话很有一定的可能绕过GPLv2的限制,实
现组件商业化。
注:我不太确定这点,还需要去咨询法律顾问,让他们来考虑并给出个可信的回答啊。 - 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
- iDempiere架构到底怎么样?
OSGi是牛的,但是并不等于iDempiere架构一定是牛的,就好像用C++也完全有可能写出比VB更慢的软件
一样。至少从我个人掌握的内容来看,iDempiere 也不是让人感觉很满意。这也许是iDempiere牛人时间
不够的原因,更有可能是我比较弱没有理解人家深刻的含义。不过,自己到底不满意什么呢,仔细想想,
其实不外乎一个词儿,粒度太粗。但是谁需要更细粒度、更优雅呢?粒度更细本身就代表着一个错误的方
向也说不定。至少对大多数人来说,说的极端一点的话,可能我只需要一个可扩展的Bundle,他的名字叫
ERP就行了也说不定。更进一步说,这样的架构已经足以PK掉很多开源ERP软件,足以用这样的架构来助力中小企业发展。
说说iDempiere = OSGi + ADempiere的OSGi的更多相关文章
- iDempiere = OSGi + ADempiere 一款ERP&CRM&SCM系统、助力中小企业发展
怀揣着为中小企业量身定做一整套开源软件解决方案的梦想开始了一个网站的搭建.http://osssme.org/ iDempiere = OSGi + ADempiere 一款ERP&CRM&a ...
- iDempiere VS ADempiere
怀揣着为中小企业量身定做一整套开源软件解决方案的梦想开始了一个网站的搭建.http://osssme.org/ 第三篇:iDempiere VS ADempiere 一直以来,什么谁谁谁VS谁谁谁的, ...
- [OSGI]Eclipse4.2 OSGI依赖Bundle
Eclipse 4.2 OSGI 依赖的Bundle: org.eclipse.osgiorg.apache.felix.gogo.runtimeorg.apache.felix.gogo.comma ...
- OSGI入门笔记
OSGI框架为Java定义了一个动态模块化系统,它使你可以更好地控制代码结构,动态管理代码的生命周期,并且提供了代码写作的松耦合方式:更值得称道的是,它的规范文档描述详尽.--<OSGI实战&g ...
- OSGi——面向服务架构规范简述
OSGi——面向服务架构规范简述 去年我们组要开发一个新的产品,在讨论产品架构路线的时候,美国的架构师向大家征集了架构设计思想(我推荐了SCSF),有一位工程师向他推荐了OSGi.以前我还没有听过OS ...
- OSGi 的核心配置、动态化及问题
一.OSGi的核心组件Bundle,与java中jar包的差别就是元数据配置: 常用的Bundle元数据定义: a) Bundle-Activator:定义Activator的实现全 ...
- OSGi 的由来和本质特性
OSGi 的由来 随着科技和需求的发展和变化,现在的软件变得越来越庞大.这样,随之而来的最大挑战就是软件在设计上的越来越复杂和维护上的越来越困难.为了解决这个问题,软件架构师将软件切分成比较小的并且易 ...
- Eclipse插件开发之基础篇(4) OSGi框架
转载出处:http://www.cnblogs.com/liuzhuo. 1. 什么是OSGi框架 OSGi(Open Service Gateway Initiative)框架是运行在JavaVM环 ...
- OSGI.NET 学习笔记--应用篇
关于osgi.net ,想必大家也听说过,以下是自己在学习osgi.net 过程中整理出来的内容,供大家学习参与使用. 1. OSGI.NET 与UIOSP OSGi是Open Service Ga ...
随机推荐
- (原创)Stanford Machine Learning (by Andrew NG) --- (week 3) Logistic Regression & Regularization
coursera上面Andrew NG的Machine learning课程地址为:https://www.coursera.org/course/ml 我曾经使用Logistic Regressio ...
- 102.愤怒的LJF
2841 愤怒的LJF 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description LJF发现ZPC的积分比他高,他很愤 ...
- js 封装的自动创建表格的相关操作
因为要做一个动态输入的表格,现在积累一下资料,在网上找了一些资料,经过总结是使用更加方便些,谁有更好的插件和封装的东西,请大家分享一下. <script type="text/java ...
- Android显示GIF动画 GifView
android中显示gif动画原生态一般支持的不是很好,故找了一个开源的项目,现简单介绍如下: GifView 是一个为了解决android中现在没有直接显示gif的view,只能通过mediapla ...
- 解决新浪微博API调用限制 突破rate_limit_status瓶颈
新浪微博开放平台API的调用和TWITTER接口一样,都是受限的,以小时为单位进行限定. 他有两个限制原则 1.用户不登录基于IP的限制,每小时1000次 2.用户登录了基于用户的限制,每小时1000 ...
- iOS开发--地图与定位
概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用 和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一 ...
- Android内存优化1 了解java内存分配 1
开篇废话 今天我们一起来学习JVM的内存分配,主要目的是为我们Android内存优化打下基础. 一直在想以什么样的方式来呈现这个知识点才能让我们易于理解,最终决定使用方法为:图解+源代码分析. 欢迎访 ...
- iview2.x版本升级3.x版本icon修改清单
当前公司使用有一个旧项目的前端组件库是iview2.x,入职以来维护该项目过程中碰到2.x版本无数的坑. 最近需求不多,闲来无事把2.x升级到3.x版本了. 新版本除了网上轻易可查到的button组件 ...
- select标签中option内容加链接
1.Html页面代码 <select name="select" id="select" style="height: 25px; width: ...
- vim配置python开发环境(转)
安装 因为许多Unix衍生系统已经预装了Vim,我们首先要确认编辑器是否成功安装: vim --version 如果已经安装了,你应该看到类似下面的文字: VIM - Vi IMproved 7.3 ...