Friday, September 4, 2009

Beautiful Architecture: Making Memories

Making Memories describes the architecture used for photography labs, where pictures are taken in a studio, enhanced and ordered at the studio. They are then sent to a processing center where they are rendered and printed, then sent back to the studio for pickup by the customer.

In designing the new software, the architects solved many problems, including concurrency issues at the studios, compiling the software, making the GUI easy to use and making the most use of the bottleneck - the rendering pipeline. They also recognized the need to make everything easy to upgrade since there are hundreds of distributed sites.

I especially appreciated their solution for keeping their DVD formats opaque. Because third parties need to interact with it, they correctly anticipated that the third parties may write their own tools to grab the format, making it impossible to change without breaking it. This is an example of Conway's law - software is structured around the communication structures. To solve the problem, they created a loader that parsed the DVD and called routines. This is a useful solution to remember when creating interfaces third parties may use.

No comments:

Post a Comment