| By Duncan Mills | Article Rating: |
|
| November 7, 2008 08:00 AM EST | Reads: |
5,426 |
The XML Metadata Vision
In an enterprise framework such as Oracle Application Development Framework, XML can offer significant benefits.
• The power of abstraction. The abstraction offered by XML metadata not only allows objects to be mapped or reused in many ways, it also provides a decoration point. Both the definition and the usage metadata for framework objects can be decorated with artifacts such as user interface hints and validation, which can be expressed using XML and incorporated into that same metadata. This has even more benefit when the objects being consumed (for example, a callout to a Web Service) can't be directly accessed by the framework. We can easily add behaviors and validation to the remote service without having to generate client stubs and wrapper code in Java.
Of course, let's not hide from the inevitable objection that abstraction through XML can lead to problems such as the management of dependency analysis and refactoring. This can be a real showstopper if all you have to work with is a dumb Java IDE editor. Again, this is not a significant issue for today's advanced IDEs; they have a holistic understanding of object and metadata interrelationships and can manage refactoring processes on the
programmers' behalf. There are also issues such as performing a diff/merge process of metadata from source control systems, but this is not something you would consider doing manually. With tooling support, though, it's not a problem.
• Future-proofing. Another benefit of abstraction through XML metadata is that it allows the underlying implementation of the framework to evolve without requiring framework users to recode. We can change the framework's implementation or deploy to new platforms without rebuilding or recompiling. Even if the metadata has to change - to add enhancements, for example - it's easy to transform the XML.
• Visualization of complex relationships. I mentioned before how important visual flow designers were in helping Struts adoption, but the other aspect of this observation is from the perspective of someone who is developing tooling for a framework. It's easier to build a diagram or visual editor directly on top of XML metadata than it is to parse Java code and build an intermediate memory model of the relationships. For most open source frameworks, tooling is an afterthought, but for us it's as important as the runtime itself, so this is a significant factor.
• The metadata is the code. XML-based metadata should not be viewed as just the configuration data or glue - it can be the application code itself. With frameworks, we can boost developer productivity by internalizing common activities such as talking to a database. The developer can then effectively code through the XML's manipulation of the framework at runtime. What that the developer "writes" - using the structured wizards and diagrams surfaced through the IDE - is the XML itself. When it comes time to deploy the application that same XML is packaged and deployed. There is no transformation or code generation to change the design time meta-model into code, because the XML is already in the correct form to run on the framework. In such frameworks, conventional Java coding is concentrated solely on the business problem rather than on infrastructure tasks.
Moreover, having an XML-based runtime model opens the door to runtime manipulation of that model though metadata management. We can use a layered metadata repository to provide customization, personalization, and even design time at runtime capabilities for deployed applications. This is simply not possible in the same way with an application fully coded in Java.
What's Next?
The vision of XML metadata as the primary code artifact is an exciting and compelling one, but there is a slight hitch. One of the biggest weaknesses of XML-driven frameworks today is debugging. Developers are insulated from the gory details of the framework implementation by the metadata until something goes wrong. Invariably, as soon as you try to debug such a framework you're thrown headlong into a huge stack of mystifying data structures that bear little or no resemblance to that nice clean representation you saw in the design time XML. This is the next great problem for framework developers to solve. How can we represent debugging at the same level of abstraction as the design time experience? It is this as a challenge that I, for one, am really looking forward to.
Published November 7, 2008 Reads 5,426
Copyright © 2008 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Duncan Mills
Duncan Mills is senior director of product management for Oracle's Application Development Tools - including the JDeveloper IDE, and the Oracle Application Development Framework. He has been in the IT industry for the past 19 years working with Oracle, Java, and a variety of more obscure programming languages and frameworks along the way. Duncan is the co-author of the Oracle Press book: Oracle JDeveloper 10g for Forms and PL/SQL Developers - a Guide to Web Development with Oracle ADF.
![]() |
hkara 11/25/08 11:36:20 AM EST | |||
Well, there is truth in this article, but there is When people are not in contact with XML directly, Besides that, I think that your article is hitting the right point. Best regards, Harry |
||||
- Kindle 2 vs Nook
- Why IBM’s Server Chief Got Busted
- Is Cloud Computing Like Teenage Sex?
- Industry Experts Discuss the State of Cloud Computing
- Performance Tuning Essentials for Java
- Confessions of a Ulitzer Addict
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- It's the Java vs. C++ Shootout Revisited!
- Cloud Computing Can Revitalize Your Career as Software Developer
- IBM Could "Reinvent" Java: Mills
- Oracle & Cloud Computing: Exclusive Q&A with SVP Richard Sarwal
- A Brief History of Cloud Computing
- Kindle 2 vs Nook
- Cloud CEOs, CTOs & SVPs to Speak at 4th International Cloud Computing Expo
- Why IBM’s Server Chief Got Busted
- Is Cloud Computing Like Teenage Sex?
- Industry Experts Discuss the State of Cloud Computing
- Performance Tuning Essentials for Java
- The Difference Between Web Hosting and Cloud Computing
- Cloud Computing Expo: Exclusive Q&A with Yahoo! SVP Cloud Computing
- Ajax in RichFaces 3.3, JSF 2 and RichFaces 4
- Confessions of a Ulitzer Addict
- My Thoughts on Ulitzer
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- The i-Technology Right Stuff
- JavaServer Faces (JSF) vs Struts
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- What's New in Eclipse?
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- i-Technology Predictions for 2007: Where's It All Headed?









































