I would like to share with you the cost advantages of configurable software using XML and XSD and the beauty of such a solution.
Working as a consultant I design and develop software. At the same time I also maintain and enhance existing software .
I have noticed that most of the time we are reinventing the wheel. There is an application that needs to read a tab separated flat file, remove a column from the file and store it in a folder. The complexity of the application is that it has to process various groups of files. The files are grouped by a product code and file types. The column to be removed varies for each file type and each product code. The typical method would be to write one processing logic per product and file type.
The approach I took in this case is to write a generic processor based on an xml configuration. The processor would read the xml configuration to find out how to process the files. I don't intend to explain the details of the solution here due to confidentiality agreements.
The way the solution works is that when a new product code is added with a new set of files to be processed all that needs to be done is to add the product and the processing rules to the xml configuration file. So no program changes required.
The beauty of xml and xsd is that the person modifying the xml configuration can immediately find out if he/she has made a mistake by validating the xml against the xsd.
The cost advantage of the above solution is the saving of development time. In the time that it takes to develop individual classes for a number of products a configurable solution can be developed. So there is no addition development time required. When a new product has to be added there is zero development time.
Many people will say, "What is so great about this? We do it all the time." Well Good for you. I write this because there a lots of solutions I have come across that do not follow this strategy and I assume it is because people think it is too costly or because it is never considered as an option.
Tuesday, July 22, 2008
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment