Amazon deals

Saturday, August 9, 2008

Reverse Engineering : An insight into the process of reverse engineering databases

Lets first look into the definition of reverse engineering. Reverse engineering (RE) is the process of discovering the technological principles of a device, object or system through analysis of its structure, function and operation. Reverse Engineering is a very powerful technique for discovering the structures of databases. There are many tools available like Apache Cayenee,Oracle Designer etc. What I want to talk thorough here is the concept of reverse engineering and its relevance into enterprise application development. You must be knowing that in the 3 tier system of Enterprise Applications other than the business code in the middle tier a lot of coding goes into both data access and modification in the innermost layer. So an enterprise app could be seen as a concentric sperical shell of three layers with the ineermost core dedicated to database(say db2),its connections and data access. Once we have this core, i.e. we know exactly what data is to be delt with we could use a tool to map the database directly to code(POJO and DAO combination in case of EJB's) and then build the rest of the application on top of this. This is reverse of the actual front end to back end conceptuation we tend to do and is termed reverse engineering. Its a relatively fast and effective method wherein the focus is exactly on the application data, enabling us to build on both existing databases and our own data logic on any given scenario.

1 comment: