Compiere on Postgres/MySQL
Tim Griffin writes " Compiere (arguably the most comprehensive open source ERP/CRM solution) has recently taken an interesting approach to harnessing community support for adding database independence to their product (currently it requires Oracle). They are taking pledged donations to help get the ball
rolling on the project
Certainly there are many feature requests in OSS I'd gladly pledge towards. Is this feature pledging a sustainability model for opensource developers/companies? Other examples, such as
Blender3d which raised 100,000 EUR in 7 weeks, point in that direction. Perhaps in the future we may even see these pledge requests
linked within the GUI itself? "
I was discussing a similar problem with some musicians the other day: how to pay for creative work?
Our solution was sponsoring, in one way or another: support from wealthier individuals or firms, getting advertising and honorable mentions in return.
The basis was the way traditional musicians are paid in Africa, which is by singing the praises of whoever gives them money. Since such musicians (like griots) are also respected on who is who in the community, their voices are sometimes worth a lot.
In software, why not something along the lines of "such and such paid for this feature", an eternal mention of one's contribution to the project. It worked for Bach and Mozart, why not for OSS today?
Ceci n'est pas une signature
I'm taking a similar approach to employment independence. For only a few dollars a month, you could help me sit on the couch every day.
Life is the leading cause of death in America.
No, that's already patented? I can hear the lawyers howling already!
In an open source product, the diffs would be out in minutes to remove this crap, thankfully. With closed source, it takes a few days for the crack to appear :).
One CPU cycle wasted on digital restrictions management is ONE TOO MANY.
I am curious.
Why did they choose Postgresql and not MySQL?
Was it because of the license(BSD vs GPL)? postgresql is considered more advanced than MySQL? both? something else?
I have already ported this to postgres on the weekend.
Compiere.pgsql
mike
Introspection is the key to understanding
The claim was made this 'port' would have aviablity in Qt 4 of 2003.
t ml page:
No sign of that happening.
Some other data for the slashdot readers.
Other 'claims' from the http://www.compiere.org/technology/independence.h
"but you can get an invoice"
and
"As a proof of concept, ComPiere plans to provide a porting kit for one database to be selected yet."
Now I "donated" over $100 on this last year for a PostgreSQL port.
1) I have not gotten a invoice.
2) Phone calls to Mr. Janke have not been returned to answer the question 'what is the status of the port'
3) Now what I "donated money" for - a PostgreSQL port - may not be done, and instead a MySQL port may be done instead?
As you can guess, I'm "Happy" about the progress thus far.
On the mailing list some people have talked about a PostgreSQL fork of his code and Mr. Janke had made mention of some PostgreSQL work done 2 years ago, but to my knowledge, none of that code is 'out there' for the public to see.
At present, the development environment is Jbuilder...perhaps a seperate slashdotting can happen and convice them to move to Eclipse?
BitTorrent regularly asks me for donations when I start it up.
Unfortunately, if I answer, "No, I haven't donated," it segfaults. I can't tell whether or not that's by design.
The US Army: promoting democracy through unquestioned obedience
Nuts to this! Seriously! Why should we contribute to this?
It makes sense for them to do this port. They should have made it work on at least either Postgres/MySQL in the first place. It's their own fault, they have clearly dug their own hole and now they want us to give them money to buy a ladder to help them out of it.
If the program was coded well, it wouldn't be more than a few days work (they should just need to change a very small number of functions, the ones that act as an abstraction layer to the DB). If they haven't, that's their problem and they have a lot more than just backend portability to worry about.
In even reasonably complex projects I always use an abstraction layer so I have the option to change the DB at will. In fact, you might say I use two layers - one layer for the DB, and another layer in the form of the functions I call to get data (which call the DB layer), and I usually have a set of 'core' functions which are not called directly from any user facing elements but only from libraries which do the actual data retrieval.
I'd also add it acts as an excellent way of reducing the number of bugs - by forcing the use of abstracted interfaces I find the enforced simplicity of the interfaces cuts down on the bug rate (by breaking down the code in to easily maintainable and re-useable chunks with easy to test input and output).
So in this case I say:
Lack of abstraction == no cookie for you! Bad developer!
I didn't know what this was, so from their webpage:
What are ERP Software Solutions? ERP stands for Enterprise Resource Planning and is the software to support your entire business processes. ERP Software Solutions typically consists of modules such as Marketing and Sales, Field Service, Production, Inventory Control, Procurement, Distribution, Human Resources, Finance and Accounting.
What are CRM Software Solutions? CRM stands for Customer Relationship Management and is the software to support your business process to find, get and retain customers. CRM Software Solutions typically consist of modules such as Sales Force Automation, Call Management, Self Service.
In any KDE program, click Help on the menu bar, then select About KDE at the bottom. You will see four tabs, each with Information on how you can help improve KDE.
In fact, you can help right now KDE 3.2 Beta. has just been released. Try it out, report any bugs or problems to help improve KDE, so KDE 3.2 will be a success when its released around Christmas.
I think ERP + CRM applications are only interesting for large companies that have a lot of money - can anybody tell me why it's better for the community that these companies do not have to spend so much money?
Heck, the E in ERP stands for Enterprise, doesn't it? And "ressource planning" bascially stands for "how to spend your money the best way" - if these enterprises have so much money, why shouldn't they spend a bit on software? Please enlighten me, thanks.
The marketing tactics of PBS, the Sierra Club, etc and the tax-deductibility of contributions have ripped the souls out of american charity.
The Sierra Club was once an actual club, with meetings where members actually met and discussed whatever they discussed. Now it's just a place to send a check.
Today, charity is an industry with a large percentage of contributions supported a well-paid bureaucracy skimming off the top.
Conformity is the jailer of freedom and enemy of growth. -JFK
Compiere has been hounded for a postgresql database port for a long time now.
They have had a committee to oversee it, they have had numerous people (of varying skill) offer to contribute, and they have had a stunning lack of progress.
Their opinion has not changed much, which is, "If you have the Enterprise needing such software, Oracle is nothing more than a drop in the bucket" Eventually, they complained that it would be a finiancial burden to make the port happen. That's when someone indicated a "donation" web page should be set up (as a compromise).
I see the donation webpage as nothing more than an attempt to keep the port from never happening, by addressing the one point of money (raised when it became obovious that many wanted the feature, but few would donate time or money)
But it requires Oracle. Huh. An Open source product that requires the purchase of a proprietary software product. Kinda defeats the purpose. No?
Personally though I don't understand why application developers use a database for anything other than storage. If all you are doing is simple inserts, selects, updates and deletes it should be very easy, if not trivial to make the application database independent.
Stored procs, triggers, etc, are evil as they spread your application logic all over the place and there are no standards for how they are implemented by different vendors. It's hard enough to find a relatively standard subset of SQL semantics.
-josh
Eg. Makumba TagLibrary is DB independent - can work with MySQL, Informix, PostgreSQL, DB/2, Quadcap embedded DB...
Sure, it's quite possible to be DB independent if your usage of the DB is as simplistic as Makumba's appears to be (note: I've just had a quick read of the documentation to get a feel for what it does, I haven't actually used it, as its a JSP thing and I tend to avoid JSP whenever possible...)
There doesn't seem to be any usage in this system of the following features, all of which are horribly unstandardized and can cause sever headaches when moving from DB to DB:
- stored procedures (not supported by MySQL yet, many variations in language used to define them elsewhere)
- foreign key constraints (i.e. ensuring that a column in inserts or updates references a valid row in another table, also not supported by MySQL)
- triggers (hell, I've never used these myself, but folks tell me they can be very handy, and are also not supported by MySQL)
- date arithmetic (OK, I'm lacking in experience, but I find it rather tricky to write SQL queries that can cope correctly with automatically producing date ranges that work in both MySQL and MSSQL, the 2 DB servers I do have more than brief experience with).
I spent some time looking for an opensource CRM and had a look to compiere. Being on Oracle was an issue, but being on java was another issue for my customer.
We are now looking to some more light weight alternatives like http://www.anteil.com/ . It's already based on free/open source databases and written in PHP.
Does anyone know other open sourced "light" CRM. Or a real experience on Anteil ?
I thought that the push behind open source was that the features that were technically best, and would be of the most benefit to the users were the ones that were added. That may not always be the case if the model of "fund-raising" is adopted, so that the wealthiest are able to control the feature-list of OSS. If you'll adopt a reasonably paranoid outlook then the implications should be obvious. Personally, this is a bit unsettling
As I see it, the only valid solution is to align the interests of the developers with those of the end users by creating a market where one or more users can commission (and pay for) from enhancements to existing software to a full software package, and the software is later released as GPL. I call it The Open Code Market.
... or not ;-).
I have developed the idea further in a paper which you can find here. It should be published in the next FirstMonday (November '03)
GMT games has "Project 500" (P500) where they take preorders for games in development/planning and begin preparations for printing after 500 orders have been made (no money is charged at preorder time). This page explains how the system works in detail. It's been very beneficial to the company, providing stability and allowing for planned growth.
So, you'll have a performance hit for using anything else but Oracle?
They also note that they got stuck porting to PostgreSQL because it lacked embedded transactions. How about offering them $20,000 for adding that feature? They already have most of the work done!
Some will whine that this approach does not support MySQL (as evidenced by the comments by donors). Having had experience with using both Oracle and MySQL for enterprise applications written in Java, I can say that the performance and productivity hit is fairly high (like reading
You can't for example write a "DELETE from products where product_id in (Select product_id from
Information: "I want to be anthropomorphized"
Just yesterday I saw Amadeus by Peter Shaffer (it was a fourth time I've seen this play, one of the best versions I might add) and I can assure you that it didn't work for Mozart at all. Of course we could seek parallels of Antonio Salieri to Bill Gates and Wolfgang Amadeus Mozart to Richard Stallman, but I think we've already gone way too far with that misleading analogy. If we keep comparing Mozart to free software then absolutely no one who knows history would ever want to be involved with free software.
Sincerely,
Pan Tarhei Hosé, PhD.
"Homo sum et cogito ergo odi profanum vulgus et libido."
I don't know if you have EVER use an enterprise applicaiton before. Even if it IS just select/inserts/deletes for basic GL/AP/AR applications you are talking about people, systems and components requiring gigs to terrabytes of data and hundreds if not THOUSANDS of concurrent users.
:)
MySQL can't handle flash back transactions, doesn't support load balancing, hot site, and paralell or clustered transactions. I need all of these to support an enterprise environment!
Sure compiere may be small, but it needs a powerfull database. It needs the features of an enterprise database oh which there isn't an open source solution to. I wouldn't dare want to recover a mysql or postgress 1.2 terrabyte erp system.
Oracle RDBMS is an amazing product. Overly capable and getting easier to use as the releases pile on. You pay for the mindset that you have a multi billion dollar company supporting you.
That brings me to the question of why use Compiere at all on anything but oracle and is there a demand for an ERP system that doesn't use a commercially supported system as NO vendor in there right mind would want to support a product they didn't develop or that didn't have its own superb support channels to begin with.
oh well. You have to remember that big business is alot different than hosting a small website or cddb database on your average linux pc
WHile MySQL has other strengths (most notably MySQL is strong where you do not WANT full ACID support, while PostgreSQL is strong where you do).
Triggers are very important for any business-critical database, as is the requirement that a database raise an exception when it cannot insert EXACTLY what you tell it to into the database.
For example, if you insert a number into MySQL that is too large for its data type, MySQL will truncate it (NOT good for accounting), while PostgreSQL will terminate the transaction and happily raise an exception! THis behavior is NOT ACID complient.
MySQL has some other strengths-- it provides a set of generic non-ACID compliant tools (such as HEAP tables) that enterprise databases cannot afford to offer.
LedgerSMB: Open source Accounting/ERP
I think the "pledge" system, from an end user perspective, is nearly the same as the pay for the license approach of shareware. In both:
a) the user downloads the program
b) if the user uses the program, and likes it, they are encouraged to "register" it to support its continued development.
Perhaps the most reasonable mechanism is to change the licensing model somewhat to differentiate from end users and developers. We could say that open source systems -can- charge money for end users. That way, the dough filters back to the developers and good projects don't die for lack of funding. Developers using open source would pay a tax of some sort to keep the open source system moving.
To differentiate developers from end users, we might require a C/S degree plus some form of certification to actually participate in the open source pool. This would serve as the basis for professionally licensing computer programmers - a long overdue move anyway. The minimum requirement would be a C/S degree + a certification. Not sure if it's right to say any engineering degree will do because C/S is a discipline in its own right and there's theoretical stuff a C/S grad will have that an EE switching over will miss.
Thoughts?
This is my sig.
it says any target db will require stored functions ("but not triggers or procedures"). that kinda lets mysql out.
:(
incidently they say that their first porting effort failed b/c "Compiere is using embedded transactions" which postgresql doesn't support. I think he means nested transactions which indeed no open source database supports yet... at least not postgresql or firebird or mysql.
1. Because it hasn't gotten anywhere near the airtime of MySQL/Postgres.
2. Because it is going away -- being merged into MySQL AB's product line as MaxDB.
http://www.sapdb.org/7.4/sapdb_mysql.htm
Learning HOW to think is more important than learning WHAT to think.
"Perhaps in the future we may even see these pledge requests linked within the GUI itself"
...err emailers will receive a log beach towel with their pledge of one hundred dollars... Okay now we bring you to your user interface.'
Great... just like public radio or television...
'We will bring you to your gui in just a moment, but first... please contribute to our effort... it is you the user that contributes the most to our efforts and if you think that this program is of value to you and you want to see it continuously improved... The next one hundred callers
repeat every 3 months.
:-) I've seen the movie as well, but it is fiction like most dramatic stories. Mozart was at times very wealthy, at times very poor, but the story of him as a poor oppressed artist fighting the establishment in the form of Salieri is just fantasy.
It's true that Mozart spent the last ten years of his life as an 'independent', after doing eleven years or so of the patronage circuit. It's also true that his best music comes from the time when he was desperate, starving, and sick. His early work is mainly junk. But that could be because he was young, not because of patronage.
Anyhow, Mozart is an excellent example, because it demonstrates something that I did not want to say, but which I believe is true: the best software comes, and will always come, from the desparate and starving and isolated developer, not the fat happy corporate keyboard bunny.
Personally, I am going through a late Mozart phase, working long hours for little gain, and I've never been so productive or creative in my life.
Ceci n'est pas une signature
Opensource programmers in India will add those same features for less than half as much in pledges.