Introspection simplifies versioning of serialized objects
presentation
Schwab, Wilhelm: University of Florida, Department of Anaesthesiology
Tuesday 11:15 am to 12 pm
Abstract: Nearly transparent object serialization and subsequent deserialization are services commonly provided in object oriented programming systems. Examples of systems providing serialization services include Java, the Microsoft Foundation Class Library, and most Smalltalk systems. In general, serialization frameworks recursively serialize nested objects and collections, and automatically resolve circular references. The more reflective the system, the less effort is required of the programmer.
These features make serialization frameworks a very attractive choice for persisting application data. In effect, they provide a file format with little if any effort on the part of the application programmer. However, there is a cost associated with loading serialized data from previous versions of an application.
Unfortunately, the lure of obtaining a file format with no effort can turn into a break on future change. Programmers feel inhibited to improve their code because doing so might require changes to the serialized format of their objects.
This paper seeks to remove the barriers to change that are ordinarily associated with serialization frameworks and versioning. It presents a programming tool and some patterns for exploiting a reflective development environment to simplify writing code to cope with version changes in serialized object data. The tool is specific to Dolphin Smalltalk, but, could be adapted to other Smalltalks and to other reflective languages.
Bio: Dr. Schwab received the PhD degree for applications of image processing to problems in experimental stress analysis. For the past ten years, he has been largely occupied with medical applications of computers, including distributed object systems, clinician entry systems, and automated intraoperative data capture. He is firmly convinced that Smalltalk has been essential to successful collaboration with physicians and to building systems that are sufficiently robust for use by physicians at the point of patient care.
Much of Dr. Schwab's leisure time is devoted to drawing and, and more recently, painting in oil. He remains determined to master the basics of automobile repair and to build a modest piano repertoire.