|
|
||
Eduardo Pelegri-Llopart's Blog
«Preview of next Draft of JAX-RPC/JAXB 2.0 |
Main
| JDJ 2004 Reader's Choice - interpreting poll results... »
Indigo and Binary XMLPosted by pelegri on February 09, 2005 at 11:24 PM | 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. Bookmark blog post: CommentsComments are listed in date ascending order (oldest first) | Post Comment
| ||
|
|