Business Object Life Cycle Pattern
Total Page:16
File Type:pdf, Size:1020Kb
PATTERNS FOR ENTERPRISE APPLICATION DESIGN AND DEVELOPMENT by Ruslan Rubis A Dissertation Submitted to the Faculty of The College of Engineering and Computer Science In Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy Florida Atlantic University Boca Raton, FL December 2017 Copyright by Ruslan Rubis 2017 ii ACKNOWLEDGEMENTS I would like to thank from the bottom of my heart my advisor, Dr. Ionut Cardei, for his persistent guidance, patience and countless advice. Without his continuous support and encouragement this project would not have been possible. I would also like to express my deepest gratitude to my committee members, Dr. Mihaela Cardei, Dr. Eduardo B. Fernandez, and Dr. Daniel Raviv. Your continuous feedback, knowledge sharing, and advice has been invaluable and immensely appreciated. iv ABSTRACT Author: Ruslan Rubis Title: Patterns for Enterprise Application Design and Development Institution: Florida Atlantic University Dissertation Advisor: Ionut Cardei, Ph.D. Degree: Doctor of Philosophy Year: 2017 Designing and developing enterprise applications is a complex and resource intensive process, as it often must address thousands of requirements. At the same time, the software architecture of most enterprise applications at their core have many features and structures in common. Designers from different teams do not normally share design elements because of the competitive and proprietary nature of development, and enterprise applications design and development teams end up re-inventing the wheel when tackling a new product. My objective is to formulate new design patterns for enterprise application architectures that assist software architects with reusable solutions to improve design quality and productivity. I achieve this by presenting seven patterns, each providing a solution to a specific challenge or a problem that is common to many enterprise applications. The Business Object Pattern provides a generic approach to design extensible Business Objects and their frameworks for enterprise applications. The pattern covers a v number of concepts, including the Dynamic business object, the Static business object, constraints for validity, editability, and attribute visibility, as well as the mechanisms for workflow. The Business Object Life Cycle Pattern introduces the concept of stages which comprise a business object’s life cycle, and their relation to the business object’s integrity during that life cycle. The Simple Change History Pattern provides a concept of enforcing record keeping of the owner and date of the last change performed on a given business data object. The Business Data Object Versioning Pattern offers a solution by introducing a new version of a given business data object which allows for preservation of the original data. The Change History Record Pattern defines a solution for cases when there is a need to capture detailed information about the changes performed on a given business object, such as who made the changes, when, and what changes were made. The Permission Based Granular Access Control Pattern offers a basic approach for access control to objects and their attributes. Finally, the Money Object Pattern offers a language neutral approach to internationalization and globalization of business applications which require multi- currency capability. It is hoped that applying these patterns will provide many advantages, ranging from quicker delivery times to a more reliable software, and ultimately help achieve a systematic approach to designing and building complex enterprise applications. vi DEDICATION This manuscript is dedicated to my family. My wife, Gloria, who unconditionally supported me over the many years of research, and would not let me quit. My daughters, Sabrina and Oksana, who encouraged me throughout this process, and who continue to compete with me in their own academic achievements. My mother, Sofia Rubis, who has always believed in me. I will forever be grateful for all their sacrifice and support. PATTERNS FOR ENTERPRISE APPLICATION DESIGN AND DEVELOPMENT TABLES ............................................................................................................................xv FIGURES ......................................................................................................................... xvi 1. INTRODUCTION ...................................................................................................... 1 1.1 Overview of Enterprise Applications ................................................................... 1 1.2 Motivation ............................................................................................................ 5 1.3 Contributions ........................................................................................................ 9 1.4 Goals................................................................................................................... 19 2. RELATED TECHNOLOGIES ................................................................................. 22 2.1 The Pattern Language......................................................................................... 22 2.2 The Unified Modeling Language (UML)........................................................... 25 2.2.1 Structure Diagrams ..................................................................................... 26 2.2.2 Behavior Diagrams ..................................................................................... 31 2.2.3 Interaction Diagrams ................................................................................... 33 2.3 Extensible Markup Language (XML) ................................................................ 37 2.4 XML Schema Definition (XSD) ........................................................................ 38 2.5 Extensible Stylesheet Language Transformation (XSLT) ................................. 38 2.6 XML Path Language (XPath) ............................................................................ 38 3. RELATED WORK ................................................................................................... 39 3.1 The San Francisco Project .................................................................................. 39 viii 3.2 The Object Management Group Business Object Domain Task Force ............. 39 3.3 Analysis Patterns: Reusable Object Models....................................................... 40 3.4 Business Modeling with UML – Business Patterns at Work ............................. 41 3.5 Patterns for Data and Metadata Evolution in Adaptive Object-Models............. 41 3.6 Patterns for e-business – A strategy for reuse .................................................... 42 3.7 SOA and the Enterprise Service Bus ................................................................. 43 3.8 Patterns for Enterprise Integration via Message Passing ................................... 45 3.9 Reusing the Design Rationale ............................................................................ 46 3.10 Microservices as an Alternative to SOA ........................................................ 47 4. THE BUSINESS OBJECT PATTERN .................................................................... 50 4.1 Introduction ........................................................................................................ 50 4.2 Intent................................................................................................................... 50 4.3 Example .............................................................................................................. 51 4.4 Context ............................................................................................................... 52 4.5 Problem .............................................................................................................. 53 4.6 Forces ................................................................................................................. 53 4.7 Solution .............................................................................................................. 54 4.7.1 The BusinessObject class ............................................................................ 55 4.7.2 The DynamicDataObject (DDO) Class ...................................................... 56 4.7.3 The StaticDocument (SD) Class ................................................................. 57 4.7.4 Constraints .................................................................................................. 58 4.7.5 The Workflow Class .................................................................................... 60 4.8 Consequences ..................................................................................................... 61 ix 4.9 Known Uses ....................................................................................................... 61 4.10 Related Patterns and Frameworks .................................................................. 62 4.10.1 The Document-View-Presentation (DVP) Pattern...................................... 62 4.10.2 The Presentation-Abstraction-Control (PAC) Pattern ................................ 63 4.10.3 The Common Business Objects Framework (CBOF) ................................ 64 4.10.4 Web Business Objects................................................................................. 64 4.11 Conclusions ...................................................................................................