The Source for Java Technology Collaboration
User: Password:



Eduardo Pelegri-Llopart's Blog

February 2005 Archives


JDJ 2004 Reader's Choice - interpreting poll results...

Posted by pelegri on February 24, 2005 at 10:37 PM | Permalink | Comments (2)

I just noticed that the Java Developer's Journal is holding their annual Readers' Choice vote. At one level this seems a good idea, but, unfortunately, in this type of poll the results can vary substantially depending on who votes, and that can change a lot through a few well-placed hyperlinks. The consequence is that the results are, in my opinion, not necessarily instructive. Polls and surveys are always tricky, as we know from the recent US election, but I find the results from, say, the Evan's North American Development Survey much more interesting, even though it has a relatively small sample.

In any case, if you want to vote on the JDJ Reader's choice, go to the JDJ site, but, if I read the information at that site correctly, they are about to close the vote, so, if you just found out like me, you may be late.



Indigo and Binary XML

Posted by pelegri on February 09, 2005 at 11:24 PM | Permalink | Comments (3)

Yesterday I attended Indigo Day at VSLive! in San Francisco. I had not yet been in Moscone West and I enjoyed it. The site is smaller than the older site where JavaOne is held, but it is above ground, with sunlight and with better cell phone reception. It was a useful day, although the crowds are substantially smaller, and older!, than what I've got used at JavaOne, and the trade show was thin.

The keynote presentation was by Eric Rudder , and then later Don Box gave the first presentation in the Indigo track. They both did a good job and together with the other presenters provided a good overview of Indigo. Indigo is MS's next generation WS platform and is intended to substantially improve the ease for writing WS endpoints that can be given different attributes, like reliability, security and transaction-support.

Indigo makes heave use of attributes, and the presenters showed it with examples in both Visual Basic and in C#. The basic principle is what Don describes as A, B, C: an endpoint is an Address, plus Binding, plus a Contract. The address is the URL for the service and the contract describes the types and operations exposed by the service. The binding is a combination of the protocol, the encoding and properties of the interaction (security, reliability, flow). I can't give a fair description of the material in this short blog, and I'll follow-up at some point in the future, maybe when Microsoft publishes the presentations, which they said they would do. I found a pointer to an older document on Indigo but it is quite older and what they presented yesterday looks better.

In general, Microsoft is putting together a good WS foundation; a substantial improvement over their older APIs, which were described as "legacy" APIs. Since I want the Java platform to do at least as well, I'm quite happy that we have been working hard on the next generations of JAXB and JAX-RPC and I really want to encourage you to start looking at that to be sure they are as capable as possible.

There is one area of Indigo that I want to mention here. As I said, the binding of an enpoint includes the protocol (things like HTTP, TCP, NamedPipe), the Security, Reliability and Flow attributes (based, for example, on WS-* protocols), and an encoder for the content. The whole thing is customizable, which is very nice, and there are a few predefined bindings for the most common cases. For example, there is one binding that uses WS-I basic profile over HTTP, and another doing the same over HTTPS. Encoders have names like WSHttpBinding, or NetHttpBinding (don't hold me to the exact names, though!).

The presentations described 4 WS* bindings and 4 Net* bindings. The WS bindings use textual XML as the encoder. Guess what do the Net bindings use? Right! a binary XML encoder!

The binary XML encoding used in Indigo was described by Eric as the binary encoding of the infoset. Later a member of the audience asked if the encoding was described "somewhere" and Don replied "yes", but that was it, so we don't know much. From the one-line description I would expect the encoding to be similar to the open standard developed by ISO/ITU-T Fast Infoset that is being implemented in the open source FI at Java.Net.

Indigo's binary XML encoding was mentioned in a number of places as a way to speed up the communication, including specific cases like when talking to the SQL Server (textual XML also being available there). The story is similar to the one we have been advocating for a while, so it is nice to have MS also validating our approach. It would be nicer, though, if MS recognized the value of having an open standard. If not participating in the development of the Fast Infoset standard, at least participating in the XML Binary Characterization WG at W3C. That WG has wide membership and MS absence is very noticeable.

If Indigo's binary XML encoding is proprietary, its appeal will be more limited. Fortunately, Indigo's binding machinery is supposed to permit the use of other encoders, so, if there is no special support for the proprietary encoding, one should be able to plug in an encoder for the open Fast Infoset standard and use it and get all the benefits of binary XML with interoperability. It will be interesting to give it a try once Indigo goes out later this year in their Technology Preview.





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds