Jurassic Phoenix - reviving yesterday\'s data
Jurassic Phoenix is a simple solution to the problem of evolution of serialized data.
Why use Jurassic Phoenix?
The frustration
Serialization is great for persistence, because it is automatic, dynamic and
Tutorial Details:
Jurassic Phoenix allows you to make the same changes to your serialized data as your class evolutions, so it matches the new structure of your evolved application, and thus can be read again. (An application can evolve in many different ways - from minor syntactic changes, to deep rearchitecting. If Jurassic Phoenix cannot yet do what you need, please check the list at the end of this webpage, and email us which ones you need - we'll bump up its priority).
Serialization is immensely attractive for persistence - it is instant, dynamic and requires no coding. So why hasn't this simple, convenient and low-cost solution become a disruptive innovation for persistence? The difficulty of evolving persisted data seems to be the show-stopper. Now that Jurassic Phoenix is solving this problem, we may see a gradual change in how developers and architects think about long-term persistence - at the very least, it will provide a viable alternative to consider.
Alternatives
Database evolution
When an application evolves that uses a relational database (RDB) as its persistent store, the code that calls the database needs to be updated. The database is a relatively fixed point (since its holds long-term data, will generally outlast the application and language it's written in, and several applications may depend on it), so that when the application changes, the it is the interface between application and database that must accommodate the change. The amount of work involved in persisting objects to a RDB is well known, and several approaches attempt to alleviate it, such as Object Databases, Object Relational (OR) mappers, and serialization (such as JSX). Note that "schema evolution" (when the data in the database is evolved) is not always necessary, and most of the evolution is accomodated as a by-product of the application code that calls the database.
Read
Tutorial at: Click here to view the tutorial
Rate Tutorial: Jurassic Phoenix - reviving yesterday\'s data
View Tutorial: Jurassic Phoenix - reviving yesterday\'s data
Related
Tutorials:
Java Q&A, Open Java?
Java Q&A, Open Java? |
Eliminate tedious programming: Recover data with XML and Reflection - JavaWorld November
2000
Eliminate tedious programming: Recover data with XML and Reflection - JavaWorld November
2000 |
Validation with Java and XML schema, Part 4 - JavaWorld December 2000
Validation with Java and XML schema, Part 4 - JavaWorld December 2000 |
Encapsulation is
not information hiding - JavaWorld May 2001
Encapsulation is
not information hiding - JavaWorld May 2001 |
Good
introduction to JDO
Good
introduction to JDO |
Navigate through
virtual worlds using Java 3D
Navigate through
virtual worlds using Java 3D |
Java and Sound, Part 1
On systems that support it, sound can be an important part of many applications. Sound can be used to notify the user that her attention is required, to add the extra dimension of aural feedback to visual GUIs, or for entertainment purposes. |
Template-Based Code Generation with Apache Velocity, Part 1
Template-Based Code Generation with Apache Velocity, Part
I'm going to discuss template-based code generation, explain basic concepts related to templates and transformations, and demonstrate the huge benefits they can bring in code generation. |
Data Models for Desktop Apps
Data Models for Desktop Apps
This is the third article in a series that presents the prototype of a Java desktop application called JImaging. The first article described the three major Java GUI toolkits: AWT, Swing, and SWT. In the second article, I int |
Using CachedRowSet to Transfer JDBC Query Results Between Classes
Using CachedRowSet to Transfer JDBC Query Results Between Classes
The Java Database Connectivity (JDBC) API provides developers with an interface to a SQL database server, such as MySQL or Oracle. Central to any JDBC application is the java.sql.ResultS |
Data Syncronization Tool
Data Syncronization Tool
Daffodil Replicator is a powerful Open Source data synchronization tool that allows bi-directional data synchronization between heterogeneous databases supporting JDBC drivers. Its flexible publish and subscribe model support |
Minding the Queue: Java 1.5 Adds a New Data Structure Interface
One of the fundamental data structures in computer science is the queue. You will recall that a queue is a data structure in which elements are removed in the same order in which they were added. This FIFO (first in, first out) data structure was unfortun |
Core Java Data Objects Excerpt
This book excerpt is from Core Java Data Objects, |
datasift (Data validation + transformation framework)
What is DataSift?
DataSift is a powerful java data validation and transformation framework, aimed at enterprise software development, which provides developers with an extensible architecture they can fully adapt to their software needs. Almost every fea |
Gain SQL SELECT functionality in Java
Gain SQL SELECT functionality in Java
Summary
In "Filter Collections," David Rappoport described a simple way to filter collections of objects. In this article, he expands on this idea and shows you how to treat an array or a collection of objects the s |
Accessing Databases Using Java and JDBC
This article will show how a Java Application, Applet or Servlet can access data stored in relational databases using the JDBC API. |
JavaTM Secure Socket Extension (JSSE)
The JavaTM Secure Socket Extension (JSSE) is a Java package that enables secure Internet communications. It implements a Java version of SSL (Secure Sockets Layer) and TLS (Transport Layer Security) protocols and includes functionality for data encryption |
Unclog the server bottleneck with active containers.
In server-side control architectures such as Java ServerFaces (JSF) or Struts, a majority of the control events must be handled on the server side to update the state of the control. For every user event, the entire page data is sent back to the server... |
Data Warehousing Total Cost of Ownership (White Paper)
The white paper discusses how to manage data warehousing costs for a more economical, long-term approach. Ventana Research wrote this report: "Data Warehousing Total Cost of Ownership Research on Sun Microsystems and NCR Teradata." |
VolatileBufferedToolkitImage Strategies
Ever wondered what kind of image to use in your application? Or what method to use in creating it? This article attempts to address this challenging topic. |
|
|
|