说说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 ...
随机推荐
- Spring MVC 工作流程详解
1.首先先来一张图 开始流程----------------> 1.用户发送请求到前端控制器,前端控制器会过滤用户的请求,例如我们在web.xml里面配置的内容: <!-- 配置Sprin ...
- Ubuntu 16.04重启Nautilus
关闭: nautilus -q 启动: 不要在命令行启动,直接在Dash中找到“文件”,然后启动,这样就可以在后台直接运行.
- mysql错误 Access denied for user 'root'@'xxx.xxx.xxx.xxx' (using password: YES)
mysql -u root -p Aaa111222333 grant all privileges on *.* to root@'%' identified by 'aaa111222333; Q ...
- NHibernate 继承映射(第十六篇)
在NHibernate的映射中,关于继承的映射策略有3种方式 单表继承 类表继承 具体表继承 另外还有一种比较特别的多态映射 隐式多态 下面分别来阐述NHibernate继承映射的各种策略要点. 一. ...
- 【shiro】报错:Caused by: java.lang.ClassNotFoundException: org.apache.shiro.spring.LifecycleBeanPostProcessor
Caused by: java.lang.ClassNotFoundException: org.apache.shiro.spring.LifecycleBeanPostProcessor at o ...
- C#开源框架整理
Json.NET http://json.codeplex.com/ Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Li ...
- 【转载】WebStorm安装 & Nodejs-Express Demo
试试下面这个方法: http://www.sdifenzhou.com/?p=6941 从这里下载 http://pan.baidu.com/share/link?shareid=2512210975 ...
- RMAN备份与恢复之概念一
1. 数据库完全备份: 按归档模式分为归档和非归档 归档模式 打开状态,属于非一致性备份 关闭状态,可以分为一致性和非一致性 非归档模式 打开状态,非一致性备份无效 关闭状态,一致性备份,非一致性备 ...
- 算法之排序Low B三人组
有序区:有的地方的数据已经完全变得有顺序,我们把这部分区域的数据成为有序区无序区:有的地方的数据依旧无序,我们把这部分数据成为无序区时间复杂度:用来估计算法运行时间的一个式子(单位)空间复杂度:用来评 ...
- Less的安装与配置
Less的安装与配置 Less与Sass 先说一段题外话,很多初学者在选择CSS 预处理语言不免会感到犹豫,作为CSS 的两大预处理语言Less与Sass,各自都有着很广泛的使用群体,我究竟该选哪个好 ...