SoftBase Systems, Inc (1994 - 2013)
Java Checkpoint-Restart Tool
I designed and implemented the first (and as far as I know only) Java-based checkpoint/restart tool. I worked on this as a proof-of-concept project to show that it was possible, at a time when Java had no serialization capabilities and Hibernate had not been invented. I was not creating an object-relational mapping tool, however, but a checkpoint/restart tool. What happened is that, over the years, software development shifted so that checkpoint/restart paradigm was not necessary. The Java tool never turned into a product.
I took the basic concepts underlying checkpoint/restart, and implemented a system for creating restartable Java programs and restoring objects which participate in a logical unit of work. This was done so early after Java's release that I remember redoing the proof-of-concept code to use BLOB support in JDBC drivers and object serialization.
Since then, the checkpoint/restart paradigm has been abandoned in favor of the modern approach of using object-relational mapping, but developing this software from scratch was interesting to do.
In a sense, I was anticipating the modern Hibernate persistence framework and JPA, only far ahead of my time. At the time the Java-based checkpoint/restart tool was developed, persistence (via the Serializable interface) did not exist in Java. (I had to quickly retrofit the entire library to use Serializable when it was introduced.) My idea of restarting objects anticipated the new paradigm introduced by Hibernate.
You are now reading one of the most visited pages on my web site. I have no idea why! People constantly search Google for variations on the keywords java, checkpoint, and restart. This is one of the only pages on the web which talks about this topic, so they visit here.
Please take a minute and send me an e-mail and let me know why you are interested in Java checkpoint/restart! I would really like to know why this page gets so many hits. I was involved in writing a Java checkpoint/restart framework in the late 1990s, but no one ever wanted to use it. The checkpoint/restart paradigm simply became obsolete with the rise of object-relational mapping tools.