
Paul, I had promised to Dejan I would respond to your earlier comment, but I will try to respond here as the thread has continued in the same vein. 1) Semantics. A bit of both sides of the argument. The CDL language draws its main semantic definitions from the SmartFrog project. SmartFrog has fairly well defined semantics. The CDL must define its operational terms in some way. It can do so using BNF, UML, XML or whatever, as long as it has made clear how it is to be used. If you look at a project like RDF, the RDF semantics primer was just released, years after the definition of the language specification. Many people have done great injustice to RDF in using it in bizarre and incompatible ways. The other side of the argument. If the CDL has not disambiguated important or edge scenarios, the likelihood of what you have proposed is very high. Reading others code won't solve the problem, as different implementations may solve the situation differently. A language must be clear about what is and is not strictly enforced. In reference to your example, I posed that exact question to Jun, the author of the CDL specification some months ago and will ensure that it is properly dealt with in the final release of the CDL spec. The component model relies on preservation of lexical order. SmartFrog did not have this limitation, as its templating language was much more freely expressed. There may be other semantics that are undefined or not clearly defined. I am not sure. Do you have any other examples? 2) Languages like system configuration grammars are hard for people to write. People don't think this way. Tooling is typically very important for the successful implementation of any system. Vanish from HP was very helpful in showing the BPEL example. BPEL is a very rich language, but almost impossible to write by hand due to its complexity. However, it is very clear how to create a tool that can write well-formed BPEL, and many vendors and independents have done just that. The purpose of CDL is to allow many contributors to a system definition. I am not sure that people will directly author CDL. On my side, we are implementing higher level tooling that can use CIM and CMDBs to derive a well-formed description, then parse down to CDL. It works quite nice. If you look at a language like DCML, it is written using RDF triples to use an ontology of system descriptions. Is that easier? 3) It would be helpful for me to understand what you consider research features. Working Groups don't do research. We write specs based on experience and implementations. Regards, Stuart -----Original Message----- From: Paul Anderson [mailto:dcspaul@inf.ed.ac.uk] Sent: Thursday, February 24, 2005 2:42 AM To: Milojicic, Dejan S Cc: Paul Anderson; cddlm-wg@ggf.org Subject: Re: [cddlm] CDL specification
Hi Paul,
I really appreciate your efforts in maintaining this discussion, it brings a lot of value to the whole process! We have discussed your comments in the regular meeting this morning. You may hear from others, but here is my perspective. .........
Many thanks for the response Dejan. This is pretty much what I had expected - I do understand the pragmatic reasons behind these decisions, but perhaps I can just summarise my concerns .. 1) If people are expected to make independent implementations of a langauge, they are much more likely to work correctly if the the language is defined by a written semantics, rather then by a reference implementation where people have to guess the significant parts of the semantics by reading someone else's code (for example, "does the order of these elements matter"?) 2) Certainly in the system config area, people at many different levels of skills will be expected to make contributions to an overall configuration, and we have identified the difficulty of learning to use the language as a major barrier to the uptake. Misconfiguration due to language confusion is also a major source of configuration errors. Hand-writing CDL is going to be significantly more difficult than the languages that we have considered previously. I would like to have seem a simpler language which standardised on the well-accepted basics, and left out (or made optional) the more "research"-oriented" features which could be layered on top later. I'll definitely keep you in touch about the workshop outcome, and I'll probably have more questions before then ... :-) Many thanks Paul

I had promised to Dejan I would respond to your earlier comment, but I will try to respond here as the thread has continued in the same vein.
Thanks - this is all very helpful. Pleae let me know if this isn't a good place to continue the discussion ..
There may be other semantics that are undefined or not clearly defined. I am not sure. Do you have any other examples?
I don't have any example immediately, but I haven't looked at it in a lot of detail. I'm sure there would be if I attempted an implementation. My worry is that this is almost certin if you do not write down the intended semantics clearly enough.
2) Languages like system configuration grammars are hard for people to write. People don't think this way. Tooling is typically very important for the successful implementation of any system. Vanish from HP was very helpful in showing the BPEL example. BPEL is a very rich language, but almost impossible to write by hand due to its complexity. However, it is very clear how to create a tool that can write well-formed BPEL, and many vendors and independents have done just that.
The purpose of CDL is to allow many contributors to a system definition. I am not sure that people will directly author CDL. On my side, we are implementing higher level tooling that can use CIM and CMDBs to derive a well-formed description, then parse down to CDL. It works quite nice.
I am very interested in all of this - my major interest is in building system configurations from independent contributions, and there is a lot we could discuss here. In this context though, the main question, is why the CDL contains the template mechanics - if the CDL is being generated by tools, why not have the tools handle templating in any way they want and evaluate down to a simpler common language (CDL with no templates) ?
3) It would be helpful for me to understand what you consider research features. Working Groups don't do research. We write specs based on experience and implementations.
Dejan brought up the question of doing things which were considered "research". I don't think that there is sufficient real-world experience of templating mechnisms in collaborative configuration specification to be sure that this particular approach is going to work well. I would rather have left this out (or as an "optional" layer) because I'm not sure it belongs at this level, and it may turn out that there are better ways of doing this once you have hardwired it into the standard. I'm still planning to look more closely at the CDL spec, and I'll probably have some more detailed questions later. Many thanks for the response Paul
participants (2)
-
Paul Anderson
-
Stuart Schaefer