Monday, February 20, 2006

MY ERP Architecture

Before I really start working on MY ERP I have another important step which is finalizing the Architecture for this product. This reminds me of a presentation which I made to the ‘Architects of Oracle Fusion’* (*this was how they were introduced to me) six months ago. The presentation was intended in giving the Architects an overview of PeopleSoft Architecture. The most striking feature of PeopleSoft’s architecture is their ‘Meta-Data Driven’ part. I was always fascinated by the fact that an ERP chose this approach (Whether they were the first? I can’t answer this question). The database companies today spend valuable amount of effort in making the data retrieval process of the database to be quick and efficient, PeopleSoft did not have to worry about the efficiency of data-retrieval as they chose the Meta-Data Driven approach. As an application package ERP’s should always worry about end-user efficiency. When you choose a Meta-Data approach, the system will certainly become more efficient with time as you will only be storing required information.

One of the first questions which I recall from my session is, “Wouldn’t storing all information in a database make it in-efficient?” And I said there is always a trade-off. Here is an example, a user designs a page using the application’s development environment (Application Designer incase of PeopleSoft), let us assume that the development environment is not meta-data driven. Now, the development environment will create a file for this page, the next time when the user wants to view the page, the development environment has to retrieve information from the file-server instead of a simple SQL (like: SELECT * FROM PSPNLFIELD WHERE blah-blah). The file-server version will definitely prove to be more inefficient. We can still make it efficient by adding the Application Server layer to our development environment, but there is no guarantee that this would prove to be more efficient.

The Meta-Data Driven approach is not without its disadvantage, customers will not relish the fact that half (not literally) of their database space is occupied by the application. As I said before there is always a trade-off. One thing is for certain I’ll surely not think about Batch Programs (Application Engine in PeopleSoft’s terms) residing in the database. They are better left as SQRs in a file-server. It was a great idea to allow users code their batch programs from the development environment, but I think they should have been left to the file server from where the development environment could have accessed them.

I think I’ll stay with the Meta-Data driven architecture with lots of tweaks to it. But before I do so I would just love to hear opinions on this. What do you think should I choose - an approach similar to PeopleSoft (The Title says it, “Driven by PeopleSoft….’) or is there something better?

1 comment:

Anonymous said...

Meta data is definately the way to go. If it's in the meta-data, you can secure it in a structured fashion, and security is certainly a top priority with corporations these days.

One challenge though: The lack of version control has plagued PeopleSoft over the years. For a good article of the reasons, check out this link: http://blog.greysparling.com/2006/01/peoplesoft-version-control.html With SOX requirements, it's becoming more of an issue so be ready to address it.