How are your serialization skills? I think this may be an area that we often take for granted because there are so many serialization implementations already available for us. This is especially true in the case of Java and Dot net. These languages, as well as many others, are ripe with many powerful serialization libraries, as well as capabilities built into the language itself.

To set some groundwork for those of you who are pure SQL gurus, serialization is the name given for converting data into a format that may be transportable to another consumer. Usually we serialize to allow sending data over a network. Sometimes we serialize for other reasons. When you take data and convert it into another form, we call that Serialization. When we take serialized data and transform it back into the original form, that is called deserialization.

Even in SQL Server we use serialization. Data is transported to the client in a form that may be serialized/deserialied in a reliable fashion. That’s all part of the SQL Server client/server protocols. Even database backups are a form of serialization. In fact, vendors have used that capability to capture the backup serialization stream and route it to their unique backup capabilities. Back in the old days I even wrote my own utility to capture a backup stream and immediately encrypt the results, and redirect the output to a file.

If you think about it, serialization is at the core of most anything we do now days. There are very few applications that are completely self-encapsulated. Today, we need to communicate to different software, sometimes hosted in process, sometimes out of process, or even software hosted on a completely different machine. The point is, serialization is a backbone to almost everything we do. The more you know about it, how to use it, how to optimize it, and what methods make a best fit, the more optimized your applications become.

We’ll take a little time to discuss serialization in future editorials.