The Case for an Open Data Model
The trend in modern software systems such as Java is to support “reflection” where independent software can query to find out the properties of objects. We have been investigating the implications of taking this property even further—so that all aspects of an application are open and available to inspection by external software. By making the fundamental data structures of the application have a standard format, external components can access the information they need without requiring a complex protocol. We have found that this gives the application developer and end users many important benefits, including support for increased automation, extensive end-user customization capabilities, external agents and tutors, sophisticated search and replace, scripting and macros, alternative interfaces without re-implementing the application, plug-ins that operate in the same space, and significantly higher re-use of common code. Many of these benefits are demonstrated in our Amulet user interface development environment which uses the open data model.