robert burrell donkin wrote:

On 8/10/05, Dennis Sosnoski <[EMAIL PROTECTED]> wrote:
I definitely agree that start-from-Java can be very useful, Robert. I'm
planning to work on adding support for my JiBX data binding framework
(http://www.jibx.org) to Axis2, starting after the next release.

would that be the next Axis2 release or JiBX release?
Next Axis2 release.

I think JiBX is one of the nicest start-from-Java frameworks around, though it's
also being extended to better support start-from-schema.

AIUI JiBX is known primarily as a generative start-from-java binder
(though now i've dug a little, i've found that it also supports
dynamic binding). i had in mind a dynamic approach which is why i
suggested xstream. (JiBX and xstream are - in my mind - third
generation approaches with better architectures more suitable for axis
2 than the second generation ones.)
XStream is an XML serialization framework, while JiBX is XML data binding. I don't know of any formal definition of the difference between these two types of frameworks, but the way I'd put it is that XML serialization generally uses formats that are defined by the serialization framework itself, while data binding allows the user to define the XML formats.

SOAP encoding is just a particular serialization format, as is JAX-RPC 1.X doc/lit. If you want to support these formats using reflection you could use something like XStream as a good base. The drawbacks are likely to be somewhat poorer performance and limited flexibility (as seen with Axis 1.X). JiBX would be more useful for people who want better doc/lit support with a full range of XML structures supported.

i'm convinced that start-from-java is a small but vital part of the
web service ecology and think it's unfortunate the advantages of the
third generation binders are not more widely know. in some ways, i
think it's a small but crucial cog in the axis2 machine: delivering
support for poor schemas and quicker prototyping by java-centric
developers.
I actually don't see this as a small part of the problem, but as a large part. AFAIK the vast majority of .NET work is being done as start-from-C# (or VB... shudder). That's not going to be everything - over time, the move is clearly toward standard schemas for data exchange, including web services - but it's a large part of why developers find web services today so much more difficult in Java than in .NET.

There are other problems lurking in the wings from the standard schemas approach, too. Schema versioning is not well handled by any of the existing frameworks that I'm aware of, though JAXB 2.0 is moving in this direction. Right now the schema-centric frameworks require you to generate a new set of classes for each version of the schema you want to support. I don't think that's a practical solution, given the trend toward industry-wide schemas being updated every year or two. In a way this becomes a variation of start-from-Java, even if the Java you're starting from was generated from version 1.0 of the schema and you just want to work with version 1.1.

do you plan to work on the proposed module here or over sourceforge?
I'm planning to handle this with a JiBX data binding interface that's part of the Axis2 code (though presumably optional, so that people who aren't using JiBX don't need it installed). This will need to include not only runtime support but also client stub generation (which in the JiBX case will need to generate the binding definition as well as the actual data classes). I'd think that's what would need to be done for other data binding frameworks, too.

 - Dennis

Reply via email to