Enterprise Application Design Patterns: Improved and. Applied. Stuart Thiel. A
Thesis in. The Department of. Computer Science and. Software Engineering.
Enterprise Application Design Patterns: Improved and Applied
Stuart Thiel
A Thesis in The Department of Computer Science and Software Engineering
Presented in Partial Fulfillment of the Requirements for the Degree of Master of Computer Science at Concordia University Montreal, Quebec, Canada
January 2010 © Stuart Thiel, 2010
CONCORDIA UNIVERSITY School of Graduate Studies This is to certify that the thesis prepared By:
Stuart Thiel
Entitled:
Enterprise Application Design Patterns: Improved and Applied
and submitted in partial fulfillment of the requirements for the degree of Master of Computer Science complies with the regulations of the University and meets the accepted standards with respect to originality and quality. Signed by the final examining committee: ______________________________________________Chair
Dr. Nematollaah Shiri ______________________________________________Examiner
Dr. Greg Butler ______________________________________________Examiner
Dr. Yuhong Yan ______________________________________________Supervisor
Dr. Patrice Chalin Approved by __________________________________________ Chair of Department or Graduate Program Director _____________________________________ Dr. Robin Drew, Dean Faculty of Engineering and Computer Science Date ______________________________________________
Abstract Enterprise Application Design Patterns: Improved and Applied Stuart Thiel Providing developers with proper tools is of ever increasing importance as software integrates itself further into all aspects of our lives. Aside from conventional hardware and software tools, architectural and design patterns have been identified over the years as a means to communicate knowledge of known problems and their solutions. In this thesis, we present several refinements and additions to these patterns, building primarily on Martin Fowler’s Patterns of Enterprise Application Architecture (2003). We present a practical implementation approach to using these patterns and discuss a framework that we have developed to aid practitioners in following this methodology. We also incorporate several of Martin Fowler’s existing patterns into an iterative design example to better demonstrate progressively improving combinations of their use in existing systems.
Acknowledgements I have never met Martin Fowler, and many people I know believe that I dislike him. Nothing could be further from the truth. His work in Patterns of Enterprise Application Architecture has inspired me for nearly a decade. While I have continually strived to surpass his work, I am truly standing on the shoulders of a giant. I would also like to thank my supervisor and friend Professor Patrice Chalin. Without someone of his caliber to discuss these ideas with, I do not believe I could have achieved as much so quickly. His intelligence and precision have encouraged me to always be more. I have also greatly appreciated teaching with him, and being taught by him. Virtually every ounce of diplomacy I have, I probably owe to him. I would like to thank the DSRG over the last few years for tirelessly helping me with the various incarnations of my thesis, through our reading and writing workshops where we reviewed each others current papers, or through long discussions around scrap paper, and sometimes pints. Daniel Sinnig, Perry James, Rajiv Abraham, Stephen Barret, Asif Dogar, George Karabotsos and Kianoush Torkzadeh, you have had a great impact on my life and on this thesis. I would lastly like to think my friends and family who have continually supported me and encouraged me to hurry up and finish. I would like to particularly thank my wife Karen Bennett for her patience with me, and my newborn daughter Kathryn who has graciously let me sleep well most nights, and who has bubbled and chirped happily next to me while I worked on this thesis. I would also like to thank Finn Upham, Jeremy Upham, Susan Upham (yes, the entire family independently), My-An Nguyen, Larry Thiel (my father) and David Reisch, who have each contributed a final review that will undoubtedly have greatly improved the overall quality of this thesis.