|
ABSTRACT
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.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
D. Axmark, M. Widenius, A. Lentz, P. DuBois, and S. Hinz. MySQL manual. http://www.mysql.com/documentation/index.html.
|
 |
3
|
|
| |
4
|
|
| |
5
|
|
| |
6
|
|
| |
7
|
P. DuBois. MySQL. Sams Developer's Library, 2nd edition, Jan. 2003.
|
 |
8
|
|
 |
9
|
|
| |
10
|
|
| |
11
|
|
| |
12
|
|
| |
13
|
T. Husted, E. Burns, and C. R. McClanahan. Struts: User Guide, 2002. http://jakarta.apache.org/struts/userGuide/index.html.
|
| |
14
|
|
| |
15
|
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In M. Aksit and S. Matsuoka, editors, Proceedings of the 11th European Conference on Object-Oriented Programming, number 1241 in Lecture Notes in Computer Science, pages 220--242, Jyvaskyla, Finland, June 9-13 1997. ECOOP'97, Springer Verlag.
|
 |
16
|
|
| |
17
|
A. Layman, E. Jung, E. Maler, H. S. Thompson, J. Paoli, J. Tigue, N. H. Mikula, and S. D. Rose. Xml-data, Jan. 1998. http://www.w3.org/TR/1998/NOTE-XML-data.
|
| |
18
|
H. Masuhara and G. Kiczales. Modeling crosscutting in aspect-oriented mechanisms. In L. Cardelli, editor, Proceedings of the 17th European Conference on Object-Oriented Programming, number 2743 in Lecture Notes in Computer Science, pages 2--28, Darmstadt, Germany, July21-25 2003. ECOOP 2003, Springer Verlag.
|
| |
19
|
L. Maturo. Using Struts. White paper. http://stealthis.athensgroup.com/presentations/Model_Layer_Framework/Stuts_Whitepaper.pdf, 2002.
|
 |
20
|
|
| |
21
|
|
 |
22
|
|
| |
23
|
|
| |
24
|
|
 |
25
|
|
CITED BY 4
|
|
|
|
|
Otávio Augusto Lazzarini Lemos , Daniel Carnio Junqueira , Marco Aurélio Graciotto Silva , Renata Pontin de Mattos Fortes , John Stamey, Using aspect-oriented PHP to implement crosscutting concerns in a collaborative web system, Proceedings of the 24th annual conference on Design of communication, October 18-20, 2006, Myrtle Beach, SC, USA
|
|
|
|
|
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.11
Software Architectures
Subjects:
Domain-specific architectures
Additional Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.11
Software Architectures
Subjects:
Patterns (e.g., client/server, pipeline, blackboard)
D.2.13
Reusable Software
Subjects:
Domain engineering;
Reuse models
D.2.2
Design Tools and Techniques
Subjects:
Software libraries;
Modules and interfaces
H.
Information Systems
H.3
INFORMATION STORAGE AND RETRIEVAL
H.3.5
On-line Information Services
Subjects:
Web-based services
General Terms:
Design,
Languages
Keywords:
JSP,
adaptability,
aspect-oriented programming (AOP),
crosscutting concerns,
dynamic pages,
generative programming,
inter-crosscutting,
intra-crosscutting,
model-view-controller (MVC),
reusability,
scattering,
struts,
tangling,
web application,
web development,
web programming
|