|Java Serialization to XML|| |
Web transactional & relational persistence for complex and evolving objects
1) We have one object that uniquely identifies a user throughout their transactions with our systems. We haven't placed this object in our relational database schema because the object evolves with our system's capabilities. We chose to evolve it with regards to Java Object Serialization as opposed to DB schema modification because of the ease of doing so and because we generally try to keep the software development impact on the DB schema to a minimum. JSX works well for this, especially since some users of this object have access to the file system, but not the database. It also eliminates the O-R mapping development and maintenance overhead for an object that is used in a transient nature most of the time.
2) We have a complex data structure (made up of Collection components and primitive wrapper objects from the JDK) that gets created with a dynamic implementation of the GoF Builder pattern. It is complex because it composed of 'collections of collections', some of which may or may not be there - depending on the context. This occurs as the result of a certain online transaction within our main product, the TeraMEDICA Intelligent Image Manager. This object (with its variable fields and sizes of those fields) needs to be persisted for input to an offline job. JSX has worked wonders for this purpose, since the schema and O-R mapping for this object would be extremely complex.
The largest solar telescope in the world, the Advanced Technology Solar Telescope (ATST) will be an indispensable tool for exploring and understanding physical processes on the Sun that ultimately affect Earth, and represents a collaboration of 22 institutions from the solar physics community.
The instruments for ATST communicate via object transmitted over ICE (Internet Communications Engine - a stripped-down CORBA-like system that offers better performance), and are also persisted in a relational database for later recovery. The ability to transfer information between Java and C++ applications is a critical aspect of the ATST software implementation. JSX allows the rapid translation of Java class information to and from XML in support of this data transfer. The XML form is also useful to hold this same information in databases.
JSX has the advantage over other Java-XML translators in that it easily handles any Java class and does not require complex XML schemas to be developed by hand.