Goals of this Project
In our experience, we have been working with Compiere for many years. We have gotten many satisfactions, and we have taken advantage of the great job made by Jorg Janke with Compiere. With the acquired experience we have a dream: to create a project that evolves from Compiere, a project with leading edge technology where everyone can share their ideas, with the GPL license, where the problems of the end users are listened to, where we can integrate our effort with the effort of others, where the requirements of business clients are heard, where our clients feel that they have true support, are in summary some of the things that need improving. Its for those reasons that we dare to invite everyone interested in this proposal, with a big desire of working and to support this dream together.
Why to do a New Project?
-Really stable , performance, flexibility, easy to use, facility of maintenance and scalability product
-Expand functionality footprint to be on par to world class ERP solutions
-The change of technology from a client-server to a more modern: three layers application
-User Interface focused in an easy use, intuitive, attractive and well Organized
-The necessity of a real community where it is possible to integrate the others job and to collaborate in the development in a scheduled way
-Tools to upgrade, migrate and apply bug corrections and improvements
-Use of open source tools to collaboration and development (SF.net , Netbeans , Java_eclipse)
-To improve the product, based on the community necessities.
-A 100% open source and GPL project
What are the benefits?
-A better product
-A project with vision and better direction
-One road map clearly defined
-A real Community
-A fast evolution of the product
-A useful application for the final customer
Fundamental Differences
-A product with edge technology.
-A product with key functionality in synch with industry business process best practices
-A stable product.
-A Product focused on the user.
-A Product of the Community and for the Community.
-A product totally Open Source and GPL.
Ordered evolution of the Product
The ordered evolution of the product is a central point in order not to create an application impossible to maintain
Proposal:
To use the model JCP (Java Community Process)
http://www.jcp.org/en/home/indexThe primary target of this process is to generate a request for specification to create any technical or functional improvement , this specification will have to pass through a process of analysis, verification and approval from the expert members of the community in the specific subject.
Once approved the request of specification it can be taken by the community of developers.
Community
-The creation of a participative community.
-Forums of discussion.
-Mailing list
-Manual on line (Wikis).
-Tutorial.
-Examples.
-Industry Study Cases
-SVN Repository into SF.net
-Voice and Vote in the priorities of the developments.
Road Map
This is a propousal it is not ordered right now, the priorities will be stablished by Adempiere's Council
-Stabilizating Adempiere code (ComXE 253b join CMPCS 253b)
-Add bug fixes from other contibutors
-Business Rules Engine Rules_engine
-Suggestion: I like the Callout, the ModelValidationEngine, etc. But this can and must be extended a lot
-Suggestion: Documents doesn't have that flexibility
-Give a name to this project (Done: Adempiere)
-Define a council and council role
-Review the license with a lawyer
-Redact and sign a contributor agreement for this project
-Define the host site for the project (Done:
www.adempiere.org)
-We, the community stop giving support on SF compiere - maybe encourage people to ask for support on the new project.
-Make the "AD Customization Keeper" (ADCK?) from Red1/Marco/Trifon a standard, improving usability, documenting how to use it, etc.
-Define the team involved on this roadmap, developers, testers, etc.
-Once the tool is finished, contributions MUST be made with a combination of XML/Druid/Jar, maybe a install tool, I believe we must only accept contributions on this format to give order to the project.
-We can accept contributions in other formats, if another contributor agrees to translate it to the tool
-Start a wiki to concentrate documentation there.
-Start discussion of new functionalities and technical requirements needed and changes to core
-REMOVE any commercial parts (PDF, reports & etc)
-Add Jasper or Pentaho integration into main CVS (or SVN ?) tree.
-Adding addons from another projects
-In same time start discuussion about new features (as ex. AJAX - which tools, framworks, codenames, ...)
[edit]
Development Plan
Architecture
-Data Persistence
-Migration Tools API Plugging and Wizard
-Business Rules Engine
-Report Generator
-New Light Client
This implies a radical change but it is a required change. To take the product from a client/server to a three layers application would solve many problems, the most important of them are those that impact the performance and independence of the database. We have to take into account also those related with edge technology.
In summary, the proposal is to change the persistence model and client to EJB3 (JPA) and SAO, next you will find a scheme of the architecture I propose.
Functional Improvements
-Integration of Manufacturing Modules
-Integration of Human Resources and Payroll
-Integration of Fixed Assets
-Integration of Cash Flow
-Reports in Multiple Currencies
-Improvements in the Financial part
-Development of Plant and Equipment maintenance
Proposal To change PO by Persistence EJB3 (JPA)
Requirements: -Independence of the DB
-Better model of Persistence
-Based on a Standard
-Powerful query language
-Impact in the speed of the development
-Increase in the Performance via cache
Proposal
To use Persistence EJB3 Entity Management TopLink Implementation
API Plugging and Wizard Migration Management System.
Requirements:
-Maintain the Application Dictionary updated
-New version migration
-New components integration
-Bugs Correction Application
-Export and Import the Data Dictionary
-Export and Import Entity Data (Client)
-Delete entities (Client)
-Wizard to create new windows
Proposal: Improve the ADCK Tool to do migrations based on XML Formats, so it will be easier the integration to new versions. Improve the tools created by Red1, Marco, Trifon y Rob Use the DdlUtils Apache(
http://db.apache.org/ddlutils/) project libraries for this porpouse.
Business Rules Engine
Requirements:
-Modify the Business Logic without changes in the source code, and online.
-The Business Rule must be in the Application Dictionary.
Proposal:
Use the Java Standards JSR 223 Scripting APIs & AOP, the use of a script language no typed facilitates the interaction with every application components, and every persistent class must implement an inspector to validate if there is a Business Rule in the Application Dictionary.
The AfterSave , BeforeSave , AfterDelete , BeforeDelete methods must be rewrited with Inspection classes.
[edit]
Reports Generator
Requirements:
-An easy to use , User Interface
-Use a Wizard to build new Reports
-Drill Down & Drill Across
-Charts
-Export reports to several formats (HTML,PDF,OpenOffice)
-A query language without creating views previously
Proposal
Integrate Pentaho or Jasper Report Design Wizard in the system core Report customization using Pentaho or Jasper Report Design
New Light Client
Requirements:
-A User interface focused in the easy, intuitive use , attractive and well organized.
-Keep just one application client.
-The client has to be really light
-Engine to build maintenance screens based on the AD
-Just get the information that the user is asking for
-Capture high volume of data in a simple, multiple and mixed way.
-Universal client (any internet browser)
Proposal
We want to create a new user interface, considering the ideas behind Gnome. Using AJAX technology the client will be communicated with the server using SOA technology.
After reviewing a lot of AJAX solutions , we believe the best option is to use GWT Google Toolkit.
Note: All this point are been discussed by the community, this is just a propousal.
Adempiere Council