Out with print outs, in with intelligent documents
The majority of web users are familiar with books, newspapers, or tax declarations. 'Active documents' promise to enhance these static documents with state-of-the-art software technology, pushing away the boundaries and limitations of traditional media. Web entities such as 'Extensible markup language' (XML) data and pieces of software will be combined in 'active documents' that could replace conventional documents, browsers and even complete applications. Similar to standard software products, they will need to be composed of smaller software components. Programmers do not want to develop their programs over and over again, but to reuse already existing parts in new applications. They need to be productive and quicker than the competitor. An appropriate reuse technology means that components can be bought in web shops and later composed with powerful composition operators. The Easycomp project's goal was to develop the foundation of such a composition technology. Second generation component technologies like Java and .NET provided a huge range of general-purpose components ready to be reused, putting the development efforts on a firm footing of well-tested building blocks. Nonetheless, source code adaptations are necessary when composing independently developed components that do not fit each other exactly. This is why the Easycomp project partners developed the Composition (Compost) system. The Compost system bridges interaction mismatches among software components, by invasively modifying them using automated program transformations. More specifically, it includes a library of common transformations in the form of Java meta programs, which can also be the generator of glue codes. The sophisticated source code analyses support the active document evolution as the requirements of end-users change. Still, configuration and tailoring is based on easy composition operations, paving the way for next generation software systems which are profoundly user adaptive.