UPDATED: For developers worried about digital rights, sometimes the simplest
answer may be the best.
Consider the plea of Java
programming language guru James Gosling, who this week suggested the time
has come for a specification that would allow ownership of file formats to
remain in place no matter how they are modified.
“For example, the file format used by most digital cameras,” Gosling
mused.
When a typical camera is set to record a JPEG
actually recording an EXIF file that uses JPEG compression to compress the
photo data within the file.
Gosling, who currently serves as CTO of the Developer Product Group at
Sun Microsystems , mused about the
origin (particularly of ownership) of an object. The question he asks is,
“What if the EXIF [Exchangeable Image File] header standard for JPEG (and
other) files had a place for historical information?”
“Wouldn’t it be cool if file formats of all kinds had provisions for
recording the provenance of a file? So that Photoshop and other imaging
applications could record and at least have a summary of what was done to the file?”
Gosling said in his blog posting.
But could it work? Yes, in theory, Gosling went on.
“This would be vaguely like what happens with mod histories in source
control systems like CVS [Concurrent Versioning System] and SCCS [Source Code Contol System], but integrated with the data, supported by the tools
that do the modifications, carried with the file as it gets moved from place
to place, and more automatic,” he said.
While Gosling’s EXIF example applies to image file formats, the concept
could be applied to nearly any design that accommodates a header.
In the example of CVS, the Apache Software Foundation uses the code
management system extensively in its platform because it allows for the
ability to track and potentially revert incremental changes to the files.
The system also allows for a reporting provision that is distributed to a
mailing list as they are made, and can be used at the same time as
many other developers.
With SCCS, Gosling’s idea works even more profoundly as the core idea of
the predecessor of Version Control Systems for Unix is the concept of
checking in and out a file from an archive.
This happens through the use of
keywords embedded in the source code that get expanded when the file is
checked out. The technology also allows for the use of locks to prevent two
people from editing the same file, something digital rights management
While it is still in the development stage, Microsoft is already doing
similar things with WinFS in its next generation Windows operating system,
code-named Longhorn.
“Everything that is stored in the WinFS store is an item and each item
has metadata properties that are described by a schema. Items that follow
the schema are stored in the WinFS store as serialized .NET objects and are
accessed through T-SQL views that give access to the items’ properties,”
Microsoft said in a January newsletter to its developers.
In the WinFS example, finding a file such as a photo stored on your disk
involves: “querying the store against the metadata properties for an Image
item, the information obtained from the EXIF header, as well as file
information like the creation date and the actual bits that make up the
image.”