I was listening to the latest .NET Rocks! episode; the part where they were discussing Service-Oriented systems. I don't remember exactly who-said-what but I do remember what was said. There was mention of something like, “You only want to pass XML messages back and forth, not objects.” The reasoning behind this (IIRC) had to do with interoperability. Let's say you have a .NET caller and a J2EE caller. Since they both define objects differently (and perhaps create and expect different serialized representations of objects) it's not gonna work. This got me thinking, why not have someone (like say, the W3C w/ the help of people at Sun, IBM, MS, etc.) develop a standard “object” schema for Web Services (and SO systems) to pass back and forth?
Now, yes, I realize this doesn't mean passing objects back and forth as opposed to XML messages would become a good thing. I know just because you can (or could) doesn't mean you should. Having said that, wouldn't a standardized object schema be of some benefit? There's no denying OOP is wide-spread. A .NET caller or J2EE caller could take the XML representation of an object and create it dynamically. For example (this is just off the top of my head and not thought through well):
<object type=““ basetype=““>
<property name=““ value=““ />
<method name=““ accesstype=”” address="">
<parameter name="" type="" required="" />
I realize this is a huge simplification of what the schema might actually look like, but perhaps someone could provide me with some insight as to why this would or wouldn't be a good idea. I'm pretty sure I'm nowhere close to being the only one to think about something like this, but I haven't seen or heard it discussed anywhere. Anyone care to comment?
UPDATE: One thing I forgot to mention, was what I thought the purpose behind an object schema might be. Maybe in order to participate in certain types of XML Web Services you would have to adhere to this object schema standard. So .NET, J2EE, Python, whatever...the implementation would have to be able to construct objects from this standard XML object schema.