Friday, June 17, 2005

Data Dictionaries and Metadata:

Its amazing how many J2EE companies these days are building on the concept of Data Dictionaries generating components, the paradigm always existed in .NET and preceding object based technologies released by Microsoft. These data dictionaries seek to capture most of the UI elements that would be required on an application, into the database. These UI elements would include Lookups, Dropdowns, Typeahead lookups, Text Feilds, Users, User Roles from LDAP/AD, Labels and so on. Now if i develop a huge enterprise J2EE application which is not hosted but deployed at different locations, it makes sense for me to persist definitions for these commonly used UI elements and other Business objects on the Database and sort of call it the metadata, generate components from them and have a CRUD interface to edit this metadata and customise these components. This reduces application development to a Metadata editing process. This approach helps a lot of organizations that develop apps like CRM, ERP and so on which are based on J2EE. The engineering team can develop applications and let loose professional service people to generate their applications by editing the metadata and bringing these components to life.

Well the biggest drawback to this widely used approach? More complex the application, more humongous will be the Metadata/Data Dictionary, Plus since its assume to be a simple CRUD operation, I haven't seen engineers impose any rules to configure the metadata based on some Grammar. This creates a huge burden on the person trying to edit the compoents through the metadata in trying to build the application.

No comments: