WS-ResourceTransfer article

Network World recently published a “technology update” column I wrote for them on WS-ResouceTransfer. It was supposed to come out soon after the release of WS-ResourceTransfer (in August 2006) but got postponed a few times. In the process, the editors requested that I made some improvements but also made some changes to the article that I hadn’t seen until it was published. The title is from them for example, as is this statement which I don’t actually agree with: “Models can be easily translated from one modeling language to another, so the invoker of the model and the service providers don’t need to use the same modeling language. Service Modeling Language, for example, was designed for that purpose.” SML was not designed for the purpose of doing model translation (even though you can of course transform to and from SML) and unfortunately model translation is not always easy. I guess the lesson is that if I had written the article more clearly to start with they wouldn’t have felt the need to make such modifications.

I think the article is still helpful in describing the potential role of WS-ResourceTransfer at the intersection of SOA and model-based management.

Comments Off on WS-ResourceTransfer article

Filed under Articles, Everything, Standards, Tech, WS-ResourceTransfer

PowerPoint abuse

The National Security Archive is not a government organization even though its name may sound like one, but a research institute hosted by The George Washington University. The Archive published today a copy of “CentCom PowerPoint Slides Briefed to White House and Rumsfeld in 2002, Obtained by National Security Archive through Freedom of Information Act“. A very interesting read, but commenting on the meat of this is way off-topic for this blog (I have a “off-topic” category, but not a “way off-topic” one). One side aspect is only a little bit off-topic though, so I’ll indulge myself: it’s about this reflection on the use of PowerPoint, by Lt. Gen. McKiernan as quoted in Thomas Ricks’ book Fiasco:

It’s quite frustrating the way this works, but the way we do things nowadays is combatant commanders brief their products in PowerPoint up in Washington to OSD and Secretary of Defense… In lieu of an order, or a frag [fragmentary] order, or plan, you get a set of PowerPoint slides… [T]hat is frustrating, because nobody wants to plan against PowerPoint slides.

It’s an old debate whether PowerPoint is a mostly good tool for presentations (that is often misused) or basically a crappy tool for presentations (if you’re in the Bay Area I can lend you the Tufte essay). I generally tend to fall towards the former view. But what should not be a matter of debate is whether a PowerPoint document is a good communication vehicle on its own (rather than as support for a presentation). I very much agree with Lt. Gen. McKiernan that it is definitely not. And by only changing a few words I could turn his quote into one that describes some interactions in several software companies I know of, including my employer. And I would guess non-software companies too, there is no reason why this would be limited to the software industry and the military.

Must…resist…killer-app…pun…

Too late.

1 Comment

Filed under Everything, Off-topic, Powerpoint

SML versus the fat-bottomed specs

SML is, if I simplify, XSD augmented with Schematron. For those, like me, who aren’t fond of XSD, this is not very exciting… until you try to look at things in a different light. Instead of another spec that forces you towards the use of XSD (like WSDL), maybe the fact that SML uses XSD is your ticket *out* of XSD-hell. Let me explain.

I wrote above that I am not fond of XSD, and yet I see the value of having SML make use of it. Like it or not, many people and organizations have made heavy use of XSD to define well-known and reusable XML elements. And there is a lot of tooling (design time and runtime) for it. Breaking away from XSD altogether is possible (and advisable in many cases), but hard to do in places like systems management that have already invested heavily in using XSD.

The problem is that XSD is a document description language. It works well when the “document” abstraction is a good match. So, when I retrieve an XHTML page from a Web site, I want the paragraphs to be in the right order. The “document” abstraction is a good match. On the other hand, when I retrieve the configuration of a server, I don’t necessarily care if the description of the CPU comes before or after the description of the network card. I am still retrieving a document though (because XML forces this abstraction). But I don’t have the same requirements on its structure that I have on a document meant for publishing (like a Web page). For the non-publishing kind of interaction, a contract (a bullet list of things you can count on) is a better abstraction than a document.

XSD works better for the publishing kind of scenario, where you want to control all aspects of the document. It doesn’t work as well in situations where you just have some constraints that need to be met (e.g., the memory size must be a number) but other things are not important to you (order of some of the elements). As a result of XSD quirks, people often end up arbitrarily fixing the order of elements where it’s not needed (using xsd:sequence) and even have to introduce unneeded elements (to escape the dreaded UPA rule). And things become even worse when you have to extend and/or version existing XSD because of all the arbitrary constraints. Other metamodels like RDF avoid a lot of these problems by focusing on the assertion, rather than the document, as the base concept but this is a topic for another post.

One nice thing about the syntax constraints usually imposed by an XSD is that it makes the serialization of a piece of XML into a Java (or other language) more efficient. It doesn’t really matter semantically if the zip code is before or after the city name. In the US the zip code typically comes after (in postal addresses), in France it’s the contrary. And for this (unlike for the stupid MMDDYY date format, don’t get me started on this) you can make a case either way since in some places a zip code includes several cities and in others a city contains several zip codes. But whichever way you choose, you may be able to write a faster parser if you know in what order to expect them.

So I don’t mind at all having an XSD that describes a reusable type for elements that are very often used as an information atom, like an address (on the other hand, serializing an entire XML document into a Java object is often the wrong way to handle it).

By now you are getting an idea of what I want as an XML contract language. I want reusable elements that are small and potentially tightly defined (XSD definitions for a set of GEDs). And I want assertions that describe rules that a set of such elements need to obey in order to be valid as a unit per the contract. Which is where SML comes in. Because it provides a way to package XSD and Schematron, I can’t help thinking of it as a possible alternative to an all-XSD view of the world. If people have the discipline to only use the XSD part to describe small reusable elements and to rely on the XPath-driven Schematron constraints to provide the contract rules that tie these GEDs into a meaningful unit.

A few notes:

– I am fully aware (being part of it) that SML wasn’t created as a generic contract language for XML-based interaction, but as a desired state modeling language. The usage I am suggesting here is clearly a hack that abuses the syntax provided by SML (actually SML-IF). And I am not even sure that the SML-IF packaging would be an entirely convenient vehicle for this approach. I haven’t done the experimentation needed to validate that. It just seems to hit the ballpark of the requirements.

– I find it ironic that the approach to an XML contract language that I described above is already how many XML specs are defined in their human-readable section (at least in the SOAP world): a list of pseudo-XPath statements with a description of what to expect at the end of each one. But somehow at the bottom of each of these specs we get a huge XSD that imposes a lot of extra constraints that have no justification in the semantics of the spec. Rather than having a set of XPath-driven schematron statements that provide a machine-readable equivalent of the human-readable rules described used pseudo-XPath. Like the Queen song (almost) says “Fat bottomed specs you make the SOAPin world go dumb”.

1 Comment

Filed under Everything, SML, Standards, Tech

Come for the XML, stay for the desired-state approach

What would you think of programmers who switch from C to Java in order to be able to use Javadoc for interface documentation? On the one hand, if the benefits of Javadoc alone justify the effort to switch then why not? On the other hand, you can’t help thinking that it’s a pity that they don’t realize (and take advantage of) all the other improvements they are getting for switching to Java. Especially if they start to rewrite some of their existing C code in Java in a way that smells more like C than real Java. Wouldn’t you want to sit with them for a talk?

Well, I am seeing early signs of this happening with SML. As I wrote earlier, the main difference between CIM and SML is that of usage model. Unlike CIM, SML is designed to enable desired-state management. That’s the real difference. But it also happens that SML is XML-based (and naturally compatible with document exchange types of interactions, be they Web Services or REST) while CIM is not (and its XML form is unusable in practice for anything other than RPC). And the difficulty of doing XML doc exchange with CIM happens to be a more immediate problem to many people than desired-state management. As a result, it is tempting to look at SML as a solution to CIM’s lack of XML friendliness. But moving to SML for this reason, while keeping the same level of granularity and the same usage model, is just like moving from C to Java for the Javadoc.

Moving to SML because it is defined around XML documents is hard to justify. BTW, moving to SML because it’s based on XSD is even worse, as I’ll explain in the next post.

Comments Off on Come for the XML, stay for the desired-state approach

Filed under Desired State, Everything, SML, Standards, Tech

Give and take

I wasn’t looking for yet another “REST vs. Web Services” thread but Pete Lacey sucked me in (and many others) by hooking us with a hilarious bait post and since then he’s been pulling strongly on the line with very serious discussions on the topic so we haven’t been able to let go. The latest one left me a little puzzled though. In the security section Pete writes that it would make sense to use WS-Security indeed (and the SOAP envelope as a wrapper) if there was a need for message-level security rather than simply transport-level security. And then, barely catching his breath, he dismisses WS-Transfer and WS-Enumeration in the following paragraph on the basis that “these specifications effectively re-implement HTTP” (not really true for WS-Enumeration but let’s leave that aside). More importantly, how am I to reconcile this with the previous paragraph? Once I use WS-Security and the SOAP envelope, I can’t use pure HTTP anymore. But the patterns supported by HTTP are still very useful. That’s what WS-Transfer is for. That’s what SOAP is for more generally, providing a hook-up point for things like WS-Security that compose with the rest of the message. I don’t understand how Pete can concede that in some cases message-level security is useful but then take away the possibility to do a GET in these circumstances. Is he saying that for some reason the scenarios that justify message-level security are scenarios in which REST-style interactions don’t apply?

3 Comments

Filed under Everything, SOAP, Standards, Tech

A larger (smoke) screen

After the 12% temperature rise, I recently ran into another creative use of percentages. Since I expect to run into many more of these (based on how many I’ve noticed in the past) and since they’re fun to point out I’ve created a new CrazyStats category.

This instance comes from a print advertisement for Samsung TVs, stating that their TVs with a 16:10 aspect ratio offer 30% more viewing surface than a 4:3 TV. Sorry, I don’t have a link but this advertisement (for computer monitors instead of TVs) repeats the “larger than 4:3 monitor” claim several times, albeit without quantifying it. This comparison makes no sense until you fix one dimension. And obviously it is to the advantage of the 16:10 screens to fix the height as being common between the two screens and then compare the surface (but even then, you only get a 20% advantage for the 16:10 compared to the 4:3, I don’t know how they came up with 30%). But if you fix the width as being the same then it’s the 4:3 that offers 20% more viewing surface…

Not that I don’t agree that 16:10 is a more useful aspect ratio (that’s what I bought for my monitor at home). But the “larger than 4:3” claim is meaningless. Next thing you know, people will start marketing 4:3 monitors as “16:12” to make them seem “bigger” than 16:10 monitors.

Comments Off on A larger (smoke) screen

Filed under CrazyStats, Everything, Off-topic

Commedia dell (stand)arte

There seems to be a micro-culture of people involved in internet standards. If you measure a micro-culture by the number of its private jokes, then this is definitely one. And there are other signs. A while back, I wrote about the mnot standard geek index. Now Umit has captured the essence of standards interactions in verses. And, according to Umit’s blog post, Jonathan is the Claude Levi-Strauss of this culture (I wasn’t at this presentation, Jonathan please send me the slides if you won’t post them).

One aspect that Umit doesn’t cover in her poems, is the always-entertaining issue of naming things. I don’t have her talent for verses, so here is in plain terms what the discussion often sounds like:

Bob: I think we need to be able to (…). And the best way to do it is by adding an element. I’ll call it Foo for now in my description of how it would work, but I don’t care how we end up calling it as long as the feature is supported.
(30 minutes of discussions about element Foo and how it works, which ends with an agreement)
Chairperson: Great, so we agree to add element Foo.
Alice: Yes, but we need another name. I am not one to argue about names but, Foo makes it sound like (…). We should call it Bar.
Bob: No, we can’t call it Bar, people would think it is used for (…). I don’t really care about names either, but in this case Foo is the best name.
(4 hours of discussions about the name, that end up with a resolution that will be overturned a couple of times before the spec is completed)

If you think I am exaggerating, I know of a set of patterns for which we had all agreed on the definitions but we could not agree on the names. Since there happened to be 7 of them, we almost ended up naming them after the 7 dwarfs as a tie-breaker. Those are the WSDL 2.0 message exchange patterns. And in retrospect it’s good that we didn’t go with the dwarfs since an eighth one was later added (after I left the group). They now have names that sound like they come out of the Kama Sutra: In-Only, Robust In-Only, In-Out, In-Optional-Out, Out-Only, Robust Out-Only, Out-In, Out-Optional-In.

Harlequin and Pantalone would be proud.

5 Comments

Filed under Everything, Off-topic, Standards

WS-RT feedback workshop

Next week, the WS-ResourceTransfer authors are hosting a short (2 hours) feedback session. It’s at HP in Cupertino CA. For all the details, please read the invitation. Here are the feedback agreement and the campus map mentioned in the invitation. This entry is late (we are already past the RSVP date) but as the host of the event I know that we haven’t reached the room capacity, so you can still join us. Just let me know.

Comments Off on WS-RT feedback workshop

Filed under Everything, Standards, WS-ResourceTransfer

Too hot to count

Here is another one to file in the “lies, damn lies and statistics” category: an article dated yesterday titled “Dutch bask in warmest autumn in three centuries” that starts with “The autumn of 2006 has been the warmest in the Netherlands for over 300 years, 12.5 percent hotter than the previous year which was already a record, meteorologists said.” We find out later where this 12.5% comes from: “The average temperature for the months leading up to November 17 was up to 13.5 degrees (56 degrees F), as compared to 12 degrees last year.” Except that such percentages don’t make much sense when applied to units that have an arbitrary zero. The same calculation using Fahrenheit degrees results in only a 5% temperature rise. Use the Kelvin scale and you’re down to a paltry 0.5% rise. Now imagine that a city has a 0.5C average one year and 1.5C average the next year. That’s a 200% increase in temperature! And if you live in a place that at some point gets a 0 degree temperature average, I would recommend moving out before the next year because you’re very likely to experience a terrifying *infinite* rise (or decrease) in temperature the following year!

This article comes from Agence France-Presse. And the French education system is criticized for putting too much emphasis on Mathematics…

1 Comment

Filed under CrazyStats, Everything, Off-topic

The S stands for satire

The cynical view of SOAP is not new, but this piece (“The S stands for Simple” by Pete Lacey) puts it down in the best form I’ve seen so far. What makes it such a good satire is not the funny writing (“Saints preserve us! Alexander the Great couldn’t unravel that” on reading the XSD spec) but how true it is to what really took place. There was plenty of room for exaggeration to get additional comic effect but Pete staid clear of that and the resulting piece is much more powerful for it.

I am impatiently waiting for the second installment, when the poor developer gets introduced to the WS-Addressing disaster.

I love the piece, but it doesn’t mean I have given up on SOAP. The fact that there was a lot of bumping around trying to find out how SOAP is most useful is not bad per se even if the poor developer left a few handfuls of hair on the floor in the process (that’s the joy of being an early adopter, right?). Many other good technologies go through that, in fact this is what makes them good, figuring out what they should not do.

SOAP is indeed for doc exchange (not “wrapped-doc/lit”). If you need end to end security, reliability or transaction then it helps you with that. If you don’t need them but think you might need them someday then the cost of putting your message in a SOAP envelope it pretty low, so do it. If you know you won’t need that then by all means POX all you want. And BTW, while the “role” attribute is indeed useless, “mustUnderstand” is very important. In fact, it would be very nice to have something like this for any portion of the message, not just headers. And speaking of extending header goodies to the body, EPRs would be useful if they were a real mechanism for templatizing SOAP messages (any part of the message, with a way to indicate what portions are there because of the template) instead of a dispatching crutch for sub-standard SOAP stacks. And since I have switched into “Santa Claus list” mode, the other piece we need is a non-brittle XML contract language. That’s for a future blog entry.

Comments Off on The S stands for satire

Filed under Everything, SOAP, Standards, Tech

SML news

Interesting SML news today. We published an updated SML spec (PDF, XSD) and, more importantly, a first version of the SML-IF (PDF, XSD) spec. IF stands for “Interchange Format” and this spec describes how to package an entire SML model (including instance documents, schemas and schematron constraints) in one XML document. This is where the real SML interoperability is going to come from. Just as important is the fact that we also published a list of interop scenarios with the associated SML-IF models. What you get is a list of SML-IF documents, each one containing an SML model that exercises some feature of SML. And the interop scenarios document tells you what the result of the validation of this document should be. So you can use your SML-IF code to import this document and then your SML code to validate it. By then comparing the results of this validation with what is expected, you can find potential interop problems in your code.

There is going to be an interop session on January 16/17 where implementers will come together to compare their results with these scenarios (HP will be there). But even if you don’t plan to come to the interop, these interop scenarios provide very useful test cases for your code. It’s true that by its nature SML lends itself well to such unit testing, but really there is little excuse for other specs to not also come out with such tests. And I speak as someone guilty of having pushed some of these other specs out.

If you are interested in coming to the interop event, here is the invitation. All the details (including the legal agreement) are at http://serviceml.org.

Comments Off on SML news

Filed under Everything, Standards

Working backwards

Werner Vogels describes Amazon’s approach to product definition as working backwards, starting with, in order, the press release, the FAQ, a definition of the customer experience and the user manual(s). A few comments:

  • When I was an R&D manager we didn’t go as far as starting from the press release. Well, to be honest none of the projects I managed was big enough to get its own press release anyway (things are different now that some of my work is on multi-company standards efforts where press releases are cheap). But we did write the user manual first in some cases. I can testify that in addition to providing a lot of clarity for the development team it also results in much better user manuals. Because they are written based on what the thing does, rather than based on how the thing is implemented as is often the case with after-the-fact user manual.
  • When you do the way Werner Vogels describes, the FAQ is more a list of “expected questions” than a real list of “frequently asked questions” but that still beats 80% of FAQs out there that are lists of “questions we’d like you to ask”.
  • This kind of reminds me of the French approach to dating. Starting from the end and working your way back to small talk.

1 Comment

Filed under Everything, Off-topic

Is SML to CIM what WS is to RPC?

The question I hear most often when talking about SML, is how it relates to CIM. The easy part of the answer is to explain that SML is a metamodel, like MOF, not a set of model elements/classes like CIM. SML per se doesn’t define what a blade server or a three tier application looks like. So the question usually gets refined to comparing SML to MOF, or comparing an SML-based model to the CIM model. Is it a replacement, people want to know.

Well, you can look at it this way, but whether this is useful depends on your usage model. Does your usage model include a distinction between observed state and desired state? You can use SML to model the laptop in front of you, but if all you’re doing is reading/writing properties of the laptop directly you don’t get much out of using SML rather than CIM, definitely not enough to justify modifying an existing (and tested) manageability infrastructure. But if you change your interaction model towards one where there is more automation and intermediation between you and the resource (at the very least by validating the requested changes before effectuating them), then SML starts to provide additional value. The question is therefore more whether you would benefit from the extra expressiveness of constraints (through schematron) and the extra transformability/validation/extensibility (through the use of XML) that SML buys you. If you’re just going to assign specific values to specific properties then CIM is just as good. And of course keep in mind that a lot of work has already gone into defining the domain-specific semantics of many properties in CIM and that work should, to the extent possible, be leveraged. Either directly by using CIM where SML doesn’t provide additional value, or indirectly by carefully surfacing CIM-defined elements inside an SML model. Finally, CIM defines operations while SML doesn’t have such a concept. The most natural way to do a “start” using SML is not to invoke a “start” operation as it is in CIM, it is to request the configuration to be changed to a state in which the resource is started. In conclusion, there is a lot more to the “CIM versus SML” question than a direct replacement. Those who just look at ways to do syntactical translation between the two approaches will repeat the same errors that created (and still create) so many problems for those who saw Web services as just another way to do object to object RPC. The usage model (some would say the architecture) is what matters, not the syntax.

1 Comment

Filed under Everything, SML, Standards, Tech

Search engine for XML documents

One of the entries that has been collecting dust in the “draft” folder for this blog was about how it would be nice to have a search engine for XML documents. So, when the announcement of Google Code Search came out, I thought it was finally done and I could delete the never-published entry. Well, turns out it doesn’t support searching on XML documents. I don’t care to debate whether XML (or some XML dialects) is code or not, all I know is that it would be very nice to be able to do things such as:

  • look for instances of a specific GED
  • compare how often different XSD constructs are used (choice, sequence…)
  • look for all wsdl:binding elements that implement a given portType
  • look for all wsdl:port elements and all the WS-A EPRs that have an address in the hp.com domain
  • look for all XML documents for which a given XPath query evaluates to “true”
  • look at the entire Web (or a subset of it) as one giant SML model and query it
  • even for good old HTML/XHTML documents, it would be nice to search them as XML documents and be able to look for pages that contain a certain string as part of the title element or as part of a list.

In the meantime, people are going to have fun searching for password embedded in source code and other vulnerabilities.

Comments Off on Search engine for XML documents

Filed under Everything, Tech

WS-Notification is an OASIS standard

WS-BaseNotification v1.3, WS-BrokeredNotification v1.3 and WS-Topics v1.3 are now OASIS standards. Congrats and many thanks to the whole working group and especially the editors. Here is the announcement and here are the specs (these are the committee drafts that were voted on, they haven’t yet been edited to reflect the fact that they are now standards):

[UPDATE: here are the links to the final versions of the standard: WS-Notification spec, XSD, WSDL; WS-Topics spec, XSD; WS-BrokeredNotification spec, XSD, WSDL]

Comments Off on WS-Notification is an OASIS standard

Filed under Everything, Standards

WWW2007 call for papers

I am on the program committee this year again for the Web services track at International World Wide Web Conference. So please send us some great papers.

Comments Off on WWW2007 call for papers

Filed under Everything, Research

Network World article about SML

I wrote a short article on SML for Network World that was just published on-line and in the paper edition.

1 Comment

Filed under Articles, Everything, Standards

WS-ResourceTransfer published

HP, IBM, Intel and Microsoft just published the first specification described by the WS-Management/WSDM convergence roadmap from March 2006. It’s WS-ResourceTransfer (WS-RT), which builds on top of WS-Transfer to allow more flexible access to the representation of the resource (e.g. retrieving only a portion of the representation instead of the whole thing). This level of features corresponds to the WS-Transfer extensions present in WS-Management or to what WS-ResourceProperties offers in the WSRF world. Attentive readers of the roadmap might remember that it mentions a WS-TransferAddendum specification. There won’t be any such specs, instead there will soon be a backward-compatible update of WS-Transfer.

2 Comments

Filed under Everything, Standards

Is SCA to SML what SOA is to ITIL?

I very much agree with Eric Newcomer’s recent post about service-oriented tooling. In discussions around SML, when people debate the decision of creating yet another metamodel I usually make three points:

  • Need for powerful mechanism to convey constraints beyond the structure of the model
  • Need for alignment w/ XML-based messaging
  • It’s not really a new metamodel anyway since it borrows so much from XSD.

The second bullet resonates well with Eric’s argument. One of the consequences of using OO for modeling is the difficulty of mapping it to XML processing.

Now, despite its name SML is not really a service modeling language. What Eric has in mind is something more like SCA. SML is less specialized than that. Surely it can be used as a foundation for modeling services. But if you give just the SML spec to two persons and ask them to model services with it, don’t expect much useful interoperability between them. At least until common service modeling elements are defined on top of SML. Which begs the question, how does this relate to what SCA already provides?

In a very simplified way, what we see happening between SCA and SML is a smaller scale version on what is happening between SOA and ITIL. ITIL came from an operations perspective, with the goal of increasing the flexibility and responsiveness of the IT infrastructure. SOA came from a software design perspective, with similar goals. ITIL covers the whole spectrum of IT resources while SOA is focused on services. Similarly, SML came from an operations perspective and is generic enough to potentially apply at all levels of the IT infrastructure. While SCA came from the software design side of the house and is focused on software services.

This still doesn’t answer the question of the relationship between SML and SCA (e.g. can SCA be an SML-based model?) though. Stay tuned.

Comments Off on Is SCA to SML what SOA is to ITIL?

Filed under Everything, Standards

WS-MeX 1.1

WS-MetadataExchange was updated and republished today. While technically not part of the WS-Management/WSDM convergence effort, this is part of the same wave of consolidation/clarification. This update was described and pre-announced in the white paper describing the Web services management convergence, including the move towards using WS-Transfer’s GET operation. While WS-MetadataExchange doesn’t say anything about this (it doesn’t need to), this move towards using WS-Transfer also means that if the provider and the requestor both support the WS-ResourceTransfer extensions to WS-Transfer they will be able to exchange portions of the metadata rather than the entire thing, in the same way than a management system would retrieve a portion of the representation of a system. This allows better re-use and composition between specifications.

Comments Off on WS-MeX 1.1

Filed under Everything, Standards