skip to main content
Skip header Section
Core J2EE Patterns: Best Practices and Design StrategiesJune 2001
Publisher:
  • Prentice Hall PTR
  • Upper Saddle River, NJ
  • United States
ISBN:978-0-13-064884-6
Published:01 June 2001
Pages:
486
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

From the Book: In the world of software, a pattern is a tangible manifestation of an organization's tribal memory. A pattern provides a common solution to a common problem and so, within the culture of one specific organization or within one domain, naming and then specifying a pattern represents the codification of a common solution, drawn from proven, prior experience. Having a good language of patterns at your disposal is like having an extended team of experts sitting at your side during development: by applying one of their patterns, you in effect take the benefit of their hard-won knowledge. As such, the best patterns are not so much invented as they are discovered and then harvested from existing, successful systems. Thus, at its most mature state, a pattern is full of things that work, absent of things that don't work, and revealing of the wisdom and rationale of its designers. Deep, really useful, patterns are typically ancient: you see one and will often remark, "Hey, I've done that before." However, the very naming of the pattern gives you a vocabulary that you didn't have previously and so helps you apply that pattern in ways you otherwise might have not have realized. Ultimately, the effect of such a pattern will be to make your system simpler. Patterns not only help you build simpler systems that work, but they also help you build beautiful programs. In a culture of time starvation, writing beautiful software is often impossible. That's sad, for as professionals, we strive to build things of quality. By applying a good set of patterns, it is possible to bring a degree of elegance in to your systems that might otherwise have been lacking. The authors of Core J2EE Patterns have harvested a really useful set of patterns. Don't get me wrong: J2EE is certainly an important platform, enabling teams to build some very powerful systems. However, reality is, there is still a wide semantic gap between the abstractions and services that J2EE provides and the final application that a team must build. Patterns such as specified in this book represent solutions that appear again and again in filling that gap. By applying these patterns, you thus carry out the primary means of reducing software risk: you write less software. Rather than discovering these solutions on your own, apply these patterns, which have already proven their utility in existing systems. More than just naming a set of patterns, the authors make them approachable by specifying their semantics using the UML. Additionally, they show you how to apply these patterns and how to refactor your system to take advantage of them. Again, it's just like having a team of experts sitting at your side. Grady Booch Chief Scientist Rational Software Corporation

Cited By

  1. Rezgui A, Gómez J and Ben Maaouia R (2017). KPI-Based Decision Evaluation System to Enhance QMSs for Higher Educational Institutes, International Journal of Decision Support System Technology, 9:2, (39-55), Online publication date: 1-Apr-2017.
  2. Navarro A and da Silva A (2016). A metamodel-based definition of a conversion mechanism between SOAP and RESTful web services, Computer Standards & Interfaces, 48:C, (49-70), Online publication date: 1-Nov-2016.
  3. Cardoso de Moraes J, de Souza W, Pires L and do Prado A (2018). A methodology based on openEHR archetypes and software agents for developing e-health applications reusing legacy systems, Computer Methods and Programs in Biomedicine, 134:C, (267-287), Online publication date: 1-Oct-2016.
  4. ACM
    Bien N and Thu T Graphical User Interface Variability Architecture Pattern Proceedings of the 6th International Symposium on Information and Communication Technology, (304-311)
  5. Xia T, Washizaki H, Fukazawa Y, Yoder J and Wirfs-Brock R Two-level checklists and perspectives Proceedings of the 22nd Conference on Pattern Languages of Programs, (1-15)
  6. Pellegrino G, Balzarotti D, Winter S and Suri N In the compression hornet's nest Proceedings of the 24th USENIX Conference on Security Symposium, (801-816)
  7. Shernan E, Carter H, Tian D, Traynor P and Butler K More Guidelines Than Rules Proceedings of the 12th International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment - Volume 9148, (239-260)
  8. ACM
    Bunke M Software-security patterns Proceedings of the 20th European Conference on Pattern Languages of Programs, (1-17)
  9. Schroeder J, Holzner D, Berger C, Hoel C, Laine L and Magnusson A Design and evaluation of a customizable multi-domain reference architecture on top of product lines of self-driving heavy vehicles Proceedings of the 37th International Conference on Software Engineering - Volume 2, (189-198)
  10. Mccormick Z and Schmidt D Data synchronization patterns in mobile application design Proceedings of the 19th Conference on Pattern Languages of Programs, (1-15)
  11. Nunes I, Barbosa S and de Lucena C Dynamically adapting BDI agents based on high-level user specifications Proceedings of the 10th international conference on Advanced Agent Technology, (139-163)
  12. Aguiar A and David G Patterns for effectively documenting frameworks Transactions on pattern languages of programming II, (79-124)
  13. ACM
    Pereira D, Lima G and Kulesza U Architecting and modularizing web information systems using design patterns Proceedings of the 8th Latin American Conference on Pattern Languages of Programs, (1-16)
  14. Sales L, Teófilo H and Mendonça N G2CL Proceedings of the 10th IFIP WG 6.1 international conference on Distributed Applications and Interoperable Systems, (169-182)
  15. Crasso M, Zunino A, Moreno L and Campo M (2009). JEETuningExpert, Expert Systems with Applications: An International Journal, 36:9, (11718-11729), Online publication date: 1-Nov-2009.
  16. ACM
    Salehie M and Tahvildari L (2009). Self-adaptive software, ACM Transactions on Autonomous and Adaptive Systems (TAAS), 4:2, (1-42), Online publication date: 1-May-2009.
  17. Rajapakse D and Jarzabek S (2009). Towards generic representation of web applications: solutions and trade-offs, Software—Practice & Experience, 39:5, (501-530), Online publication date: 1-Apr-2009.
  18. Pieters K Patterns, complexity and the lingua democratica; introducing a pattern-oriented approach to complexity Proceedings of the 10th WSEAS international conference on Automation & information, (269-274)
  19. ACM
    Shroff G, Agarwal P and Devanbu P Instant multi-tier web applications without tears Proceedings of the 2nd India software engineering conference, (3-12)
  20. ACM
    Luz C, Borges M and Campos M Sofia Proceedings of the 2nd ACM international workshop on Story representation, mechanism and context, (41-48)
  21. Cichý M and Jakubík J Design Patterns Identification Using Similarity Scoring Algorithm with Weighting Score Extension Proceedings of the 2008 conference on Knowledge-Based Software Engineering: Proceedings of the Eighth Joint Conference on Knowledge-Based Software Engineering, (465-473)
  22. ACM
    Juillerat N Enforcing code security in database web applications using libraries and object models Proceedings of the 2007 Symposium on Library-Centric Software Design, (31-41)
  23. Kampffmeyer H and Zschaler S Finding the pattern you need Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems, (211-225)
  24. Betermieux S and Bomsdorf B Finalizing dialog models at runtime Proceedings of the 7th international conference on Web engineering, (137-151)
  25. ACM
    Senthil R, Kushwaha D and Misra A (2007). An improved component model for component based software engineering, ACM SIGSOFT Software Engineering Notes, 32:4, (9-es), Online publication date: 1-Jul-2007.
  26. Dong J, Yang S and Zhang K (2007). Visualizing Design Patterns in Their Applications and Compositions, IEEE Transactions on Software Engineering, 33:7, (433-453), Online publication date: 1-Jul-2007.
  27. Rajapakse D and Jarzabek S Using Server Pages to Unify Clones in Web Applications Proceedings of the 29th international conference on Software Engineering, (116-126)
  28. Zhu L, Staples M and Gorton I An Infrastructure for Indexing and Organizing Best Practices Proceedings of the Second International Workshop on Realising Evidence-Based Software Engineering
  29. Solinis-Camalich I, Quesada-Arencibia A, Rodríguez-Rodríguez J and Moreno-Díaz R An open modular system for monitoring remote sensors Proceedings of the 11th international conference on Computer aided systems theory, (82-89)
  30. ACM
    Emmerich W, Aoyama M and Sventek J (2007). The impact of research on middleware technology, ACM SIGOPS Operating Systems Review, 41:1, (89-112), Online publication date: 1-Jan-2007.
  31. ACM
    Emmerich W, Aoyama M and Sventek J (2019). The impact of research on middleware technology, ACM SIGSOFT Software Engineering Notes, 32:1, (21-46), Online publication date: 1-Jan-2007.
  32. Carvalho N, Pereira J and Rodrigues L Towards a generic group communication service Proceedings of the 2006 Confederated international conference on On the Move to Meaningful Internet Systems: CoopIS, DOA, GADA, and ODBASE - Volume Part II, (1485-1502)
  33. ACM
    Aguiar A and David G Patterns for documenting frameworks Proceedings of the 2006 conference on Pattern languages of programs, (1-10)
  34. ACM
    Raner M The mutator pattern Proceedings of the 2006 conference on Pattern languages of programs, (1-6)
  35. Cuadrado J and Molina J A plugin-based language to experiment with model transformation Proceedings of the 9th international conference on Model Driven Engineering Languages and Systems, (336-350)
  36. ACM
    Dahiya D and Sachdeva R (2006). Approaches to aspect oriented design, ACM SIGSOFT Software Engineering Notes, 31:5, (1-4), Online publication date: 1-Sep-2006.
  37. ACM
    Gitzel R and Schwind M Experiences with hierarchy-based code generation in the J2EE context Proceedings of the 4th international symposium on Principles and practice of programming in Java, (216-223)
  38. ACM
    Rudzki J and Systä T Performance implications of design pattern usage in distributed applications Proceedings of the ISSTA 2006 workshop on Role of software architecture for testing and analysis, (1-11)
  39. Keren M, Kirshin A, Rubin J and Truu A MDA approach for maintenance of business applications Proceedings of the Second European conference on Model Driven Architecture: foundations and Applications, (40-51)
  40. Choi S, Yoo C and Chang O Development of integrated DAO pattern applying iterator pattern Proceedings of the 2006 international conference on Computational Science and Its Applications - Volume Part IV, (955-965)
  41. Stal M (2006). Using Architectural Patterns and Blueprints for Service-Oriented Architecture, IEEE Software, 23:2, (54-61), Online publication date: 1-Mar-2006.
  42. Chen J and MacDonald S RoadMapAssembler Proceedings of the 2005 conference of the Centre for Advanced Studies on Collaborative research, (55-69)
  43. Witthawaskul W and Johnson R Transaction Support Using Unit of Work Modeling in the Context of MDA Proceedings of the Ninth IEEE International EDOC Enterprise Computing Conference, (131-141)
  44. ACM
    Schmid H, Pfeifer M and Schneider T A middleware-independent model and language for component distribution Proceedings of the 5th international workshop on Software engineering and middleware, (83-89)
  45. Mac-Vicar D and Navón J Web applications Proceedings of the 5th international conference on Web Engineering, (500-505)
  46. Mazhelis O, Markkula J and Jakobsson M Specifying patterns for mobile application domain using general architectural components Proceedings of the 6th international conference on Product Focused Software Process Improvement, (157-172)
  47. ACM
    Gorton I and Zhu L Tool support for just-in-time architecture reconstruction and evaluation Proceedings of the 27th international conference on Software engineering, (514-523)
  48. Maciaszek L "Roundtrip architectural modeling" Proceedings of the 2nd Asia-Pacific conference on Conceptual modelling - Volume 43, (17-23)
  49. Billig A, Busse S, Leicher A and Süß J Platform independent model transformation based on triple Proceedings of the 5th ACM/IFIP/USENIX international conference on Middleware, (493-511)
  50. ACM
    Reimer D, Schonberg E, Srinivas K, Srinivasan H, Alpern B, Johnson R, Kershenbaum A and Koved L SABER Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis, (243-251)
  51. ACM
    Reimer D, Schonberg E, Srinivas K, Srinivasan H, Alpern B, Johnson R, Kershenbaum A and Koved L (2004). SABER, ACM SIGSOFT Software Engineering Notes, 29:4, (243-251), Online publication date: 1-Jul-2004.
  52. Long B (2004). Distributed result set iterator, Journal of Parallel and Distributed Computing, 64:4, (536-545), Online publication date: 1-Apr-2004.
  53. ACM
    Liebmann E and Dustdar S Adaptive data dissemination and caching for edge service architectures built with the J2EE Proceedings of the 2004 ACM symposium on Applied computing, (1717-1724)
  54. Todd E, Kemp E and Phillips C What makes a good user interface pattern language? Proceedings of the fifth conference on Australasian user interface - Volume 28, (91-100)
  55. ACM
    Greenfield J and Short K Software factories Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (16-27)
  56. Matera M, Maurino A, Ceri S and Fraternali P (2003). Model-driven design of collaborative web applications, Software—Practice & Experience, 33:8, (701-732), Online publication date: 10-Jul-2003.
  57. Zannier C and Maurer F Tool support for complex refactoring to design patterns Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (123-130)
  58. Schmidt D and Buschmann F Patterns, frameworks, and middleware Proceedings of the 25th International Conference on Software Engineering, (694-704)
  59. ACM
    Zannier C Tool support for refactoring to design patterns Companion of the 17th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (122-123)
  60. Schmid H On the use of enterprise Java beans 2.0 local interfaces Proceedings of the 3rd international conference on Software engineering and middleware, (144-156)
  61. ACM
    Moore T (2002). Bringing the enterprise into a database systems course, ACM SIGCSE Bulletin, 34:1, (262-265), Online publication date: 1-Mar-2002.
  62. ACM
    Moore T Bringing the enterprise into a database systems course Proceedings of the 33rd SIGCSE technical symposium on Computer science education, (262-265)
Contributors
  • Sun Microsystems

Recommendations