Adempiere ist ein Open Source ERP/CRM-System aus der Familie der Compiere-Clone, deren einziger vollständig freier Vertreter mit offener Community es ist.
Diese ständig wachsende und recht aktive Community steht einigen Problemen gegenüber: Wie behält man die Kontrolle über viele eingereichte Fixes, Patches und Erweiterungen, deren Qualität a priori nicht bekannt ist, wenn das System andererseits produktiv eingesetzt wird, sogar an operativ wichtigen Stellen?
Wie seine Vettern Compiere und OpenBravo verfügt Adempiere nämlich zwar über ein dynamisches Dictionary, in dem Datenstrukturen und Oberflächen abgelegt sind. Die Businesslogik und der Anwendungskern sind jedoch sehr monolitisch gehalten und größere Erweiterungen (wie der POS oder das Produktionsmodul Libero) werden direkt hineingebunden.
Was hier fehlt, ist ein tragfähiges Plugin-Konzept. Und wer denkt nicht sofort an Eclipse, wenn er an Plugins denkt? - Tatsächlich beruht Eclipse auf dem erweiterten OSGi-Container Equinox, der über das Verwaltung von Java-Modulen (genannt Bundles) und Services hinaus noch ein mächtiges Extension-Konzept bietet.
Es war naheliegend und nach einigen Anfangsproblem mit dem Classloading auch recht einfach, Equinox in Adempiere zur Verfügung zu stellen. Nun gilt es, vorhandene Erweiterungen zu Plugins umzuschreiben und im zweiten Schritt auch den Anwendungskern um unnötige Funktionalität zu erleichtern, um ein modulares und aufgeräumtes System zu erhalten.
Eine genauere Beschreibung der Arbeit findet sich im Adempiere-Wiki.
What do you think about ADempiere running as OSGi bundles on Eclipse eBPM platform?
Please check:
http://eclipse.org/ebpm/
Eclipse eBPM is certainly a very interesting platform.
How does it compare to Eclipse STP and the new Activiti BPM suite on the other hand?
To be honest, I don't see how to simply move ADempiere onto any of these platform.
Could you possibly explain the advantages such a move might have?
Eclipse eBPM is an integration project and uses Eclipse STP.
Eclipse eBPM uses jBPM and obviously will use Activiti 5.x (because jBPM has been discontinued and migrated to Activiti which has as objective to become an Apache project).
Please search for "jbpm" string on:
http://www.eclipse.org/proposals/ebpm/
and on:
http://www.spagoworld.org/xwiki/bin/download/Spagic/WebHome/Spagic3PresentationEN.pdf
in the presentation above on page 18 you can see jBPM bottom center.
The idea is that ADempiere should focus on domain logic and use existing OSGi platform (Eclipse eBPM) for anything else. It is a migration process form current monolithic situation where ADempire does everything to a product focused on ERP & CRM business logic only.
My view is that ADempiere should be broken down in ERP & CRM specific OSGi bundles and be deployed on a OSGi platform like Eclipse eBPM (Service Bus, SCA, BPM 2.0)
Also another cornerstone of modularization is maven builds:
http://www.infoq.com/articles/modular-java-what-is-it
What do you think? Does it make sense?
jBPM has been discontinued? - Can you point me to that announcement?
I don't think the efforts of moving to a new platform are justified by the enhancements provided: In ERP business, you must think in terms of user requirements. Implementing fast and stable is the top goal.
The monolothic design of ADempiere is certainly a brake, but I think pure OSGi suffices to overcome that limitation.
Please check "Activiti or jBPM, which should I use in my next project?" section on http://activiti.org/faq.html
It appears that jBPM 4.0 moved to Activiti with the jBPM founder and lead architect (http://activiti.org/team.html).
Yes, OSGi is good and sufficient for ADempiere.
My point is to avoid reinventing the wheel. OSGi is about modularity and components. If a component already exist outside ADempiere it makes sense to use it.
Eclipse eBPM is a collection of OSGi bundles that work well together and are useful for enterprise.
When ADempiere will be broken in many OSGi bundles then is time to make an assessment: use exiting bundles if they exist or build proprietary ones.
My suggestion is to evaluate Eclipse eBPM and find out if its exiting OSGi modules may be useful for OSGi ADempiere.