Automated Model-Based Configuration of Enterprise Java Applications

The decentralized process of configuring enterprise applications is complex and error-prone, involving multiple participants/roles and numerous configuration changes across multiple files, application server settings, and database decisions. This paper describes an approach to automated enterprise application configuration that uses a feature model, executes a series of probes to verify configuration properties, formalizes feature selection as a constraint satisfaction problem, and applies constraint logic programming techniques to derive a correct application configuration. To validate the approach, we developed a configuration engine, called Fresh, for enterprise Java applications and conducted experiments to measure how effectively Fresh can configure the canonical Java Pet Store application. Our results show that Fresh reduces the number of lines of hand written XML code by up to 92% and the total number of configuration steps by up to 72%.

[1]  Sanjay Mittal,et al.  Towards a Generic Model of Configuraton Tasks , 1989, IJCAI.

[2]  Gabor Karsai,et al.  Smart Dust: communicating with a cubic-millimeter computer , 2001 .

[3]  Charles W. Krueger,et al.  Salion's Experience with a Reactive Software Product Line Approach , 2003, PFE.

[4]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[5]  Krzysztof Czarnecki,et al.  Staged configuration through specialization and multilevel configuration of feature models , 2005, Softw. Process. Improv. Pract..

[6]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

[7]  Beth Stearns,et al.  Applying Enterprise JavaBeans: Component-Based Development for the J2EE Platform , 2003 .

[8]  Tijs van der Storm Variability and Component Composition , 2004, ICSR.

[9]  Bran Selic,et al.  The Pragmatics of Model-Driven Development , 2003, IEEE Softw..

[10]  Joxan Jaffar,et al.  Constraint logic programming , 1987, POPL '87.

[11]  Mike Mannion Using First-Order Logic for Product Line Model Validation , 2002, SPLC.

[12]  Paul Murray,et al.  SmartFrog: Configuration and Automatic Ignition of Distributed Applications , 2003 .

[13]  Michael J. Maher,et al.  Constraint Logic Programming: A Survey , 1994, J. Log. Program..

[14]  Rod Johnson,et al.  Expert One-on-One J2EE Development without EJB , 2004 .

[15]  Aniruddha S. Gokhale,et al.  Model-Driven Configuration and Deployment of Component Middleware Publish/Subscribe Services , 2004, GPCE.

[16]  Daniel Sabin,et al.  Product Configuration Frameworks - A Survey , 1998, IEEE Intell. Syst..

[17]  Christoph Wienands,et al.  Practical Software Factories in .NET , 2006 .

[18]  Gabor Karsai,et al.  Composing Domain-Specific Design Environments , 2001, Computer.

[19]  Ivica Crnkovic Component-based software engineering - new challenges in software development , 2003 .

[20]  Eugene C. Freuder,et al.  Configuration as Composite Constraint Satisfaction , 1996 .

[21]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[22]  Archana Ganapathi,et al.  Why Do Internet Services Fail, and What Can Be Done About It? , 2002, USENIX Symposium on Internet Technologies and Systems.

[23]  Pascal Van Hentenryck Constraint satisfaction in logic programming , 1989, Logic programming.

[24]  Francisco Reverbel,et al.  The JBoss Extensible Server , 2003, Middleware.

[25]  Jason Brittain,et al.  Tomcat: The Definitive Guide , 2003 .