Domain driven web development with WebJinn

Web application development cuts across the HTTP protocol, the client-side presentation language (HTML, XML), the server-side technology (Servlets, JSP, ASP, PHP), and the underlying resource (files, database, information system). Consequently, web development concerns including functionality, presentation, control, and structure cross-cut, leading to tangled and scattered code that is hard to develop, maintain, and reuse. In this paper we analyze the cause, consequence, and remedy for this crosscutting. We distinguish between intra-crosscutting that results in code tangling and inter-crosscutting that results in code scattering. To resolve inter-crosscutting, we present a new web application development model named XP that introduces extension points as place-holders for structure-dependent code. We present another model named DDD that incorporates XP into the Model-View-Controller (MVC) model to resolve both intra- and inter-crosscutting. WebJinn is a novel domain-driven web development framework that implements the DDD model. WebJinn has been used to develop web applications at several web sites. Domain driven web development with WebJinn benefits from a significant improvement in code reuse, adaptability, and maintainability.

[1]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[2]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[3]  Paolo Merialdo,et al.  Design and development of data-intensive web sites: The Araneus approach , 2003, TOIT.

[4]  Paolo Paolini,et al.  Model-driven development of Web applications: the AutoWeb system , 2000, TOIS.

[5]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[6]  Paolo Merialdo,et al.  To Weave the Web , 1997, VLDB.

[7]  Ralf Lämmel,et al.  A semantical approach to method-call interception , 2002, AOSD '02.

[8]  Ralph E. Johnson,et al.  Design Patterns: Abstraction and Reuse of Object-Oriented Design , 1993, ECOOP.

[9]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[10]  Cynthia P. Ruppel,et al.  The role of IS personnel in Web-based systems development: the case of a health care organization , 2000, SIGCPR '00.

[11]  George T. Heineman,et al.  Component-Based Software Engineering: Putting the Pieces Together , 2001 .

[12]  Cedric Dumoulin,et al.  Struts in action : building web applications with the leading Java framework , 2003 .

[13]  Patrick Donohoe Software product lines : experience and research directions : proceedings of the First Software Product Lines Conference (SPLC1), August 28-31, 2000, Denver, Colorado, USA , 2000 .

[14]  Hidehiko Masuhara,et al.  Modeling Crosscutting in Aspect-Oriented Mechanisms , 2003, ECOOP.

[15]  David Lorge Parnas,et al.  Review of David L. Parnas' "Designing Software for Ease of Extension and Contraction" , 2004 .

[16]  Volker Turau A framework for automatic generation of web-based data entry applications based on XML , 2002, SAC '02.

[17]  Sue Spielman The Struts Framework: Practical Guide for Java Programmers , 2002 .

[18]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[19]  Piero Fraternali,et al.  Tools and approaches for developing data-intensive Web applications: a survey , 1999, CSUR.

[20]  Clemens Szyperski,et al.  Component software , 1997 .

[21]  Barry A. Burd JSP: JavaServer Pages , 2001 .

[22]  Don S. Batory,et al.  Achieving Extensibility Through Product-Lines and Domain-Specific Languages: A Case Study , 2000, ICSR.