Selling customizable products, tailored to customers demands becomes an increasingly important business opportunity in highly competitive, saturated markets. Enterprises pursuing product customization, employ product configurators to support the configuration of customized product variants. Thereby, product configuration systems efficiently facilitate the integration of the customer into the enterprise's value chain and reduce the complexity induced by the manufacturing of customizable products.
Since configurators encapsulate the complete product knowledge, including manifold constraints, implementing them technically in a sustainable way, is challenging and complex. The adequate modeling of configurable products is decisive for the system's maintainability. Therefore, the modeling capabilities must support the precise, correct and compact, yet human readable and verifiable definition of configuration knowledge.
The researched methodology presented in this work, called OpenConfigurator, implements a framework for realizing custom product configurators. OpenConfigurator defines a conceptual modeling language to describe configurable products as Java classes, annotated with configuration meta-data. The generic API offered by the framework, allows to instantiate the custom, domain-specific product model, while maintaining the configuration's consistency during the specification process. The framework's capabilities are demonstrated by the implementation of a generic mobile configurator application.
The methodology shows how modern Java EE technologies including JPA, Bean Validation and CDI are used, to simplify the development of configurators. Leveraging standardized technologies, the introduced approach is easy to learn. Moreover, the resulting configurator incorporates a highly flexible, extensible architecture, that strongly fosters maintainability.