Continuum: Features

Radical schema evolution

Traditional object marshalling technologies are highly limited in what changes can be made to objects without breaking compatibility with existing data. Continuum is truly limitless - facilitating any structural change, regardless of how radical it might appear. The following is a list of schema changes supported by Continuum:
  • Classes:
    • Class and package renaming
    • Field renaming
    • Field type changes
  • Enumerations:
    • Name and package changes
    • Changes to the constants' names
    • Adding and removing constants
  • Inheritance:
    • Name/package changes in the class hierarchy
    • Insertion and deletion of classes in the hierarchy
    • Shifting of fields up/down through the hierarchy
  • Other alterations:
    • Changing between serialisation schemes: e.g. from 'Serializable' to 'Externalizable' and back
    • Shifting of data between classes that are not mutually reachable
    • Upgrades to structures containing circular references

Plug'n'play API compatiblity

Most Java applications already use serialisation of one form or another to handle semi-structured or loosely-structured data, whether this data is written to a flat file, stored in a relational database or sent over the wire. Continuum is a full drop-in replacement for the traditional Java Serialisation API and offers full type compatibility to existing applications. Little or no changes have to be made to the application to adopt Continuum. Because its completely compatible with Java Serialisation, all existing "read resolve" migration rules will continue to work with Continuum.

Architecture independent

Continuum doesn't suffer from the "endianness" issues that plague other persistence formats. Using Continuum, data written on one hardware platform supporting Java technology can easily be relocated to another Java-ready platform.

Relational database integration

A well-defined transactional model, querying, backup and replication as well as an endless supply of tools make databases an ideal place for storing, searching and retrieving structured data. Databases can also store loosely structured data in XML or binary formats but offer little in way of schema evolution. Continuum-enhanced JDBC bridges this gap, making semi-structured data a first class citizen of the database world.

Multiple format support

Continuum can read and write using either a binary format for maximum efficiency and storage compactness, or a text-based format such as XML and JSON for readability. Furthermore, custom text-based hierarchical formats can be implemented as required.

Clean separation of migration rules from domain objects

Object marshalling technologies typically allow the domain storage classes to override the default de-serialisation behaviour by implementing interfaces or overriding well-known methods. This is limited to populating newly added fields with default values or re-initialising transient data. An unavoidable side effect of this model is the pollution of domain classes with migration rules. While retaining backward compatibility with legacy serialisation APIs, Continuum completely eliminates migration rules from domain classes and removes unused fields. The rules are completely decoupled from the class definitions and from the application's source code and build process. They can be defined in another package or even another project and linked with the application at runtime.

Proceed to the benefits page to see how Continuum can serve your organisation.