|Research, training, consultancy and software to reduce IT costs|
XML-based programming 7: is it for you?
Is XML-based programming suitable for your project?
Over the past few weeks I have described using XML during systems development and programming. It all started with using XML to pass data between different layers of the application, and has grown to use XML as a common format for all the ancillary parts of the system, such as configuration and testing.
When I started, I did not set out to create a whole new way of working. There are already lots if good frameworks to choose from, and it would be stupidclever to invent another one.
However, our use of XML has evolved to something significant and useful. It delivers very good separation between different layers of the system, and provides a flexible and consistent approach for many different aspects of development.
This has allowed us to merge together a complicated web application, some fairly hefty batch-style analysis, and a generic report production mechanism. It has allowed us to develop a single test approach which covers all of these, including low-level services, user interface, and reporting. It provides good facilities to load database data as XML, including the automatic resolution of foreign keys. It allows us to build higher level XML-based services from lower-level XML-based services.
There are some disadvantages. Some people are not comfortable with XML. Even though XML is good as a general-purpose format, it is rarely the best tool for any particular job. There are limits to what should be done in XML, especially for intensive use.
Overall the approach works well for us, and we do not intend to change it. We now have a significant investment in XML, and we have grown familiar with it.
But now I have two other questions. First, would I recommend this approach to others? Secondly, should we develop this further as a product in its own right?
I would definitely recommend the approach if you are familiar with XML, you have complicated integration inside the application, and you want a lot of control over how it is going to be put together, as in our merging of web application, batch processing and report production.
Conversely, the approach would be overkill for architecturally simpler applications that can be developed using one single set of technologies.
I do not know whether we should develop this further as a product. The XML capabilities have been developed independently from the application that use them, and could easily be applied to other projects. We would be happy to share them under some suitable open source license, if there was a demand for this.
So I am going throw this question over to you. Would the Java and XSLT tools we have developed for XML-based programming be something that you think could be useful in your work? If we provided them as open source products, is this something that you would use? Could you contribute to them to help their further development, or know of similar projects that they could contributed to?
If you are interested, contact me.Next: An apology to project managers
Minimal IT: research, training, consultancy and software to reduce IT costs.