XML & Web services: Is XML databinding a good fit here?
Hello, Was hoping to get some good feeback on the following: Current arch. is a swing client with corba services deployed on AIX. Data tranferred over the wire is XML(string) instead of traditional corba datatransfer objects. The corba interface just provides business methods which take in a parameter of type java.lang.String(xml). We are using a DOM based xml serializer/deserializer which does the javaxml conversion both on client and server.This works except that the marshall/unmarshall process is killing us (DOm coupled with Reflection). I have been exploring other options for the java xml databinding(marshall & unmarshall).Is JAXB a good candidate for this type of architecture? Are databinding frameworks normally used for synchronous request-response type scenarios (e.g. a thick client(s) and a server) Essentially I need something that would work off a xml schema (the xsd file would define the different payload formats for the req-response scenario). Currently xml is used internally btw the client - server, but in the near future we forsee accepting and transmitting xml feeds to/from external systems(where validating the instance docs would be necessary). Any pointers would be very helpful. TIA, Dooma
- Posted by: Dooma Paapu
- Posted on: January 25 2007 20:08 EST
As you have an XML Schema, JAXB is a good choice in terms of marshalling/unmarshalling performance. However, there is a caveat. When you compile a Schema with JAXB or similar, you generate a set of classes that are tightly bound to the structure of the XML. Now, XML is usually used as a decoupling mechanism to reduce the interdependencies between systems. If you tightly couple to your decoupling mechanism, you can end up with a tight coupling between your systems. You may want think about introducing a facade layer between your generated JAXB classes and your core application classes, so that you can provide some protection to the core application code from changes to the XML. How big an issue this is depends on how much your Schema is likely to change over time. Cheers, Tony. -- Anthony B. Coates Author, "XML APIs" chapter, "Advanced XML Applications from the Experts at The XML Guild" http://www.amazon.com/XML-Power-Comprehensive-Guide-Guides/dp/1598632140/
Dooma, I can make a somewhat different suggestion. Take a look at NetKernel and see if the built-in XML processing capabilities would help you with your architecture. Since you are working with XML now and plan to expand your use of XML, it might make sense to look at a system that handles XML as a native resource. Here is an introductory link to the XML capabilities: http://1060research.com/netkernel/detail/xml-binding.html You can register for free support and ask for architectural guidance. -- Randy