Open Source community provides companies with a great deal of really suited tools for fulfilling their computing needs. A number of mission critical applications already run under Linux or FreeBSD operating systems, use Apache as their web server, sendmail or Postfix as their mail server, and so on. Those are all Open Source pieces of software.
Databases are widely used to store business informations: product lists, customer and vendor informations, general ledger... Interaction between database storage and user is the place where business applications sit and interact with users and data.
Commonly, business applications fall in two main categories:
- Standard software and
- Specific software.
Both have bells and whistles and (but not advertised by vendors) pitfalls. Let's have a glance at those.
- Standard Software
- Off the shelf software sounds engaging as it feeds you with some classic, but pretty standard, features at an affordable cost.
Great, but what happens if you need a feature the vendor did not think of and does not want to implement cause your wish is not in the mainstream. You might wait forever...
This is the most common pitfall, apart bugs never fixed. Another trap being lack of access to the source of the program to eventually fix bugs by yourself or implement the missing part.
- Specific Software
- Specifically tailored and built software gives you (or tries) exactly what you need, even the most incredible one, cause you made the specs and can have it evolve as you want. Impressive, at least while you don't have a look at the total cost of such a masterpiece.
So, you get the choice between missing features and huge financial charges. This does not sound smart. Even worse, most classic software are tied to only one database model. When you change the software, you have to pay for another database too. Bad news.
Open Source community made some efforts to provide some business usable software. But most are not mature enough to be used in mission critical applications and lack flexibility.
LAB Project goals to have a quick overview of goals.
Database back end abstraction to have an overview of intricacies of database abstraction.
Architecture Overview to have a quick overview of internal architecture