Adaptive Object-Model Metadata Evolver
|
|
- Felix Holt
- 5 years ago
- Views:
Transcription
1 Adaptive Object-Model Metadata Evolver Atzmon Hen-Tov Pontis David H. Lorenz Open University Lena Nikolaev Pontis Lior Schachter Open University Rebecca Wirfs-Brock Wirfs-Brock Associates Joseph W. Yoder The Refactory, Inc. Introduction An Adaptive Object-Model (AOM) system represents user-defined domain classes (and their relationships) as metadata [YBJ01; YJ02]. The AOM system is a model represented by objects rather than classes. The object model is constructed at run time by interpreting externally stored definitions (metadata). Users change the object model (or the metadata) to reflect changes in the domain. One way to support model evolution is to take the system off-line, evolve the metadata and the domain objects, and perform a clean restart of the system after a careful release and upgrade. However, when a system needs to keep running, or when updating the entire model at the time a new version needs to come online is too time consuming, then the evolution of the metadata and the domain objects can be included as a part of the model loader. Target Audience The pattern presented in this paper focuses on updating the metadata as either the core meta-architecture or the domain model of an AOM evolves. This pattern is particularly relevant to developers of AOM systems. It may also be relevant to those who need to evolve other types of meta-architectures. We assume the reader has some background knowledge of AOM systems (mainly TYPE OBJECT [JW98], PROPERTIES [JW98], and TYPE-SQUARE [YBJ01] or DYNAMIC OBJECT MODEL [RTJ05] based architectures). 1
2 AOM Metadata Evolver Context You are upgrading a 24x7 production system that is implemented using an AOM. You find that implementing new functionality requires changes to the AOM architecture. For example, a core update to the AOM architecture may be required. You want to make these changes available to a running production system where there is already considerable metadata and data in the system based upon a previous version of the AOM architecture. Your model relies on a TYPE OBJECT [JW98] to dynamically define new business entities for the system. Entities have attributes, which are implemented with the PROPERTIES [JW98] pattern. The TYPE OBJECT pattern is used a second time to define the legal types of attributes, called AttributeTypes. Thus you are using TYPE SQUARE [YBJ01], a combination of TYPE OBJECT [JW98] and PROPERTIES [JW98] patterns. Additionally you might be using these patterns: ENTITYRELATIONSHIP (ACCOUNTABILITY) [WYW09], RULEOBJECTS [Ars00], HISTORY OF OPERATIONS [FCW08], SYSTEM MEMENTO [FCW08], and MIGRATION [FCW08]. Problem How can you evolve at runtime the metadata and the data associated with a live and running AOM as its core architecture changes? Forces Polymorphism: The rules for creating an entity may vary according to its type or according to rules that apply to its data. A monolithic upgrade logic will not manage model evolution well, i.e., a solution that doesn t support polymorphism in the upgrade logic will be hard to manage against a polymorphic model.. Customisability: There are many customers using the product, each customer may modify its own AOM model. The new architecture needs to be able to understand different versions of the AOM model. A solution that doesn t let the customer team resolve conflicts autonomously will require reimplementation of the customization. Legacy Data: There may be large amounts of stored instances, excluding the possibility for off-line data migration in a short maintenance window. Solution Use an AOM BUILDER [WYW09] to create entities (Figure 1). Add as the first step in your AOM-Builder an UpgradeBuildStep to check whether the data associated with an entity-type has been defined with the current version of the AOM. If not, invoke the necessary upgrade scripts that will evolve the data to map to the current version of the AOM. Each entity-type may have several upgrade scripts (Figure 2), some of which are supplied with the new product version and some that are added manually by the user (per customized installation of the AOM system). 2
3 Figure 1: Upgrade Builder Step This process can include migrating metadata and data from many versions before so there may be a chain of version upgrades that needs to be applied. For that to work, every persistent object (Entity, EntityType) has a version field (Figure 2). A system-wide parameter holds the currently installed version. When upgrading the system a collection of ModelVersion entities and the associated upgrade scripts are available to the UpgradeManager. Figure 2: Upgrade Framework Class Diagram 3
4 The UpgradeManager is responsible for determining which scripts are necessary to invoke. This is carried out by consulting the EntityType and the migration converstions each Upgrader handles. This logic includes querying a flag (overridesuper) to determine whether or not the EntityType superclass Upgraders should be used. An Upgrader edits the raw AOM data (e.g., XML) and transforms it to the new version format. The raw data transformation is the responsibility of the Upgrader.upgrade method (Figure 2). Updating the raw data values of AOM objects in the BuildContext is carried out by the UpgradeManager (Figure 1). The BuildContext is part of the AOMBuilder. The upgrade framework provides an API (using the PROXY pattern) for manipulating raw data format. This lets the script programmer concentrate on the transformation from the old version to the new one, rather than dealing with the raw data format [BMR+96]. Dynamics The overall process requires a staging server (Figure 3) in which the new version is installed and the AOM metadata from the production system is brought into the running system. Conflicts between modification done by developers in the new version of the product and modifications done at production by end users are reported in the Problems view (see BREAK AND CORRECT [HNS+10]) and the user needs to resolve them. For example, if an entity type has a new property with the same name of a property defined in an AOM type, the user will need to change the dynamically defined property name. The product team prepares placeholder update scripts for cases where they think a customer specific upgrade script is needed (for example, when a new mandatory property is defined and a simple default value will not suffice). After all conflicts are resolved and all placeholder scripts are written, the customer team can test the new version along with the entire set of upgrade scripts. During production deployment, the upgrade framework is invoked as a first step in the AOM-BUILDER and performs just-in-time instance upgrades as described above (invoked as script hook points during the build process). 4
5 Figure 3. AOM Evolution Process Example For example, consider an AOM implementation of an online marketing system, designed for running Telephony campaigns targeted at different subscriber segments [HLPS09]. Figure 4 shows several classes in the AOM and several instantiated entities. 5
6 Figure 4. The AOM Model and Instances. A generic product comprises several general-purpose classes, such as Benefit and Event. Benefit describes specific campaigns. Event describes the trigger for activating Benefits. Each Benefit is associated with an EventType to define which type of Event can trigger grant of this Benefit type. BenefitType and EventType are part of the AOM TYPE OBJECT pattern. These generic classes can be specialized for a particular customer. In our example, the customer defined two kinds of Benefits: FreeSms and FreeAstrologicalPrediction; and three kinds of Events: SmsEvent, TopupEvent, and VoiceCallEvent. FreeSms is activated by an SmsEvent and grants the user with free units of Sms sends. The number of units is defined in the Benefit class. FreeAstrologicalPrediction is activated by a TopUpEvent and grants the user with free units of daily predictions. For simplicity we omit details such as the conditioning for granting benefits, e.g., send 200 text messages 6
7 this week and get 100 more sends for free. In addition, the customer took advantage of the AOM architecture and added a CAP instance variable in FreeAstrologicalPrediction. This variable is used by the customer to set a special cap on the number of free units that limits the overall cost of the benefit to the service provider in keeping with the marketing budget for this campaign. At runtime, instantiations of specific benefits represent specific products. For example, 100FreeSms sets the benefit to 100 units of free SMS's. WeekFreeAstrologicalPrediction sets the benefit to 7 days of free predictions with a maximum cap of 1904 days total for all users collectively to keep within a $10K budget. Upgrade Scenario The next version of the AOM system needs to incorporate two improvements (Figure 5). First, the cardinality of the association between BenefitType and EventType needs to change from 1:1 to 1:M. In this new version each benefit may be triggered by several event types. Second, to improve budget control, a new monetary CAP is introduced in the generic framework (in the Benefit class), along with a costperunit (in BenefitType). When granting benefits to end users, the system checks that the CAP is not exceeded, otherwise it fails the grant. This is implemented in the new version of the Benefit class. Next we consider the conflicts that may occur during the upgrade and their resolution. Generic upgrade scripts: The cardinality change is a change to the type of benefits, thus affecting FreeSMS and FreeAstrologicalPrediction. This is resolved by providing an upgrade script that converts an event type value to an event type list containing a single event type value. The script is provided as part of the generic system upgrade: if (oldinstance.gettriggertype()!= null) { newinstance.gettriggertypes().add(oldinstance.gettriggertype()); } The generic product can contain a library of recurring refactoring scenarios and their solutions (e.g., property rename). Customer upgrade scripts: Not all upgrade scenarios can be resolved automatically. In some cases specific business logic should be applied in order to resolve the conflict. For example, the cost-per-unit modification cannot be resolved generically. The new property is mandatory and therefore must be initialized. Therefore, the customer needs to supply the cost on case-by-case basis. This is achieved by defining a placeholder script that the customer team needs to implement. The addition of the CAP variable clashes with pre-existing customizations performed to the model by the customer. Specifically, the addition conflicts with the CAP introduced earlier by the customer. To resolve this conflict, the customer needs to rename the original CAP to oldcap and provide an upgrade script that calculates the CAP value for existing model instances. This can be accomplished by multiplying the oldcap by the costperunit and the number of units. newinstance.setoldcap(oldinstance.getcap()); 7
8 newinstance.setcap( oldinstance.getoldcap() * oldinstancenewinstance.gettype().getcostperunit() * oldinstance.getunits()); The FreeSMS is simpler: the customer just needs to define a default value. Although the example presented here is of an application domain change, the pattern applies as well to core AOM architecture changes, such as changing the serialization format of AOM objects. Figure 5. New Version of the AOM Model. 8
9 Alternative Solution The core solution presented in this pattern is based upon lazily evolving the metadata as the system evolves; primarily for modifying systems that need to be running 24x7. However there is a very common alternative (or possible pattern) to the core solution mentioned in this paper that can be used when you need to Evolve your Metadata and you don t have such execution constraints. This is to suspend your AOM system and completely migrate all of your metadata before resuming the system. This alternative is premised on the ability to completely shut down the running AOM system. This allows for a script to completely evolve all of the metadata before bringing your AOM system back online. This solution has the benefit of allowing the metadata to always be consistent with the AOM and will also perform better as the system will not need to invoke checks and hooks in order to possibly evolve the metadata as it is loaded and instantiated. There are definitely tradeoffs to either solution but the core solution mentioned in this paper requires interesting enhancements to the core of the AOM architecture, while this alternative solution does not affect the architecture of the AOM. Resulting Context High Availability: Changes to the AOM architecture can be made without having to stop a running system and then evolve all the previous metadata and data at the same time. Amortized Cost: The overhead of converting data to the new AOM architecture occurs incrementally. Automatic Migration: Default migration can be provided for the changes to the core AOM metadata and architecture using generic scripts. An AOM system may be upgraded from a much earlier version to the latest version without going through the intermediate versions Reuse: Generic upgrades can be provided by the upgrade framework (e.g., for rename property). Usability: Users are supported in resolving version conflicts. Higher Complexity: The AOM Builder code is more complex as hook methods and evolution code will become part of the Builder. Performance Hit: The AOM Builders can be slower at first as the upgrade to the metadata is invoked. Running version checks every time an entity is created can degrade performance. Fragility: Cached AOM data may need to be flushed to force data evolution of existing in-memory AOM instances. Related Patterns History Patterns [AND98] allows for different version of the rules to be available thus going back in time but can add a lot of complexity to the system. Also, in some systems you only want the current version of the AOM architecture and rules. AOM BUILDER [WYW09] is an evolution of the BUILDER [GoF95] pattern. 9
10 AOM Builder is used to invoke the Upgrade Scripts [HNS+10]. Customer upgrade scripts are implemented using the PLACEHOLDER PATTERN [FJS99]. HOOKS [FPR01] are invoked in the AOM loader to enable customers to provide default values for AOM attributes when migrating to a new version. Known Uses Pontis Ltd. ( is a provider of Online Marketing solutions for Communication Service Providers. Pontis Marketing Delivery Platform allows for onsite customization and model evolution by non-programmers. The system is developed using ModelTalk [HLPS09] based on AOM patterns. Pontis system is deployed in over 20 customer sites including Tier I Telcos. A typical customer system handles tens of millions of transactions a day exhibiting Telco-Grade performance and robustness. There is a mutation technique developed for migrating objects in Smalltalk-80 [CW86] that is a known use of the core of this pattern. These authors made an enhancement to Smalltalk that changed how class redefinitions worked. The original Smalltak-80 system mutated all existing instances to use the new representation whenever a class was redefined. To eliminate the overhead of this bulk object mutation, the new approach used lazy mutation. Lazy mutation defers object mutation until it is actually used in a computation. Lazy mutation is accomplished by replacing the method dictionary of the old class definition with a dictionary which defines only the message doesnotunderstand:. In addition, the superclass of the old class definition is set to nil and a reference to the new class definition is stored within the old definition. When a message is sent to such an instance of the old class, a response to the message will not be found and the doesnotunderstand: method will be activated. This method contains the code to mutate the instance into an instance of the new class. The difference between this approach and the pattern described in this paper is that lazy mutation only applies a single evolution to an object, not a chain of replacements. An AOM system developed for the Illinois Department of Public Health used the alternative solution mentioned above. There are also many other well-known uses of the alternative solution done by some of the authors. 10
11 References [AOM] [And98] [Ars00] Adaptive Object-Models. Anderson, F. A Collection of History Patterns. Proceedings of the 6 th Pattern Language of Programs Conference (PLoP 1998), Monticello, Illinois, USA, Arsanjani, A. Rule Object Pattern Language. Proceedings of the 8 th Pattern Language of Programs Conference (PLoP 2000). Technical Report WUCS-00-29, Dept. of Computer Science, Washington University Department of Computer Science. (2000). [BMR+96] Buschman, F., Meunier, R., Rohnert, H., Sommerlad, P., and Stal, M. Pattern Oriented Software Architecture, Volume 1: A System of Patterns. Wiley & Sons [BR98] [CW86] [FCW08] [Fow97] [Fow02] [FPR01] [FY98] [GoF95] [HNS+10] [HLPS09] [Jon99] Bäumer, D., D. Riehle. Product Trader. Pattern Languages of Program Design 3. Edited by Robert Martin, Dirk Riehle, and Frank Buschmann. Addison-Wesley, Caudill, P., Wirfs-Brock A. "A Third Generation Smalltalk-80 Implementation.", p , OOPSLA '86 Conference Proceedings, Portland Oregon, September 29-October 2, Ferreira, H. S., Correia, F. F., and Welicki, L Patterns for data and metadata evolution in adaptive object-models. Proceedings of the 15th Conference on Pattern Languages of Programs (Nashville, Tennessee, October 18-20, 2008). PLoP '08, vol ACM, New York, NY, 1-9. Fowler, M. Analysis Patterns: Reusable Object Models. Addison- Wesley Fowler, M. Patterns of Enterprise Application Architecture. Addison-Wesley Fontura, M., Pree, W., Rump, B. The UML Profile for Framework Architectures. Addison-Wesley Foote B, J. Yoder. Metadata and Active Object Models. Proceedings of Plop98. Technical Report #wucs-98-25, Dept. of Computer Science, Washington University Department of Computer Science, October Gamma, E., R. Helm, R. Johnson, J. Vlissides. Design Patterns: Elements of Reusable Object Oriented Software. Addison-Wesley Atzmon Hen-Tov, Lena Nikolaev, Lior Schachter, Joseph W. Yoder, Rebecca Wirfs-Brock. Adaptive Object-Model Evolution Patterns, SugarLoafPLoP To appear. Atzmon Hen-Tov, David H. Lorenz, Assaf Pinhasi, Lior Schachter: ModelTalk: When Everything Is a Domain-Specific Language, IEEE Software, vol. 26, no. 4, pp , July/Aug Jones, S. A Framework Recipe. Building Application Frameworks: Object-Oriented Foundations of Framework Design. Edited by Fayed, M., Johnson, R., Schmidt,.D. John Wiley & Sons
12 [JW98] [KJ04] [KSS05] [Mar02] [RFBO01] [RTJ05] [RY01] [WYWJ07] [WYW09] [WYW07] [YBJ01] [YJ02] [YR00] Johnson, R., R. Wolf. Type Object. Pattern Languages of Program Design 3. Addison-Wesley, Kircher, M.; P. Jain. Pattern Oriented Software Architecture, Volume 3: Patterns for Resource Management. Wiley & Sons Krishna, A., D.C. Schmidt, M. Stal. Context Object: A Design Pattern for Efficient Middleware Request Processing. 13 th Pattern Language of Programs Conference (PLoP 2005), Monticello, Illinois, USA, Martin, R. Agile Software Development: Principles, Patterns, and Practices. Prentice Hall, Riehle, D., Fraleigh S., Bucka-Lassen D., Omorogbe N. The Architecture of a UML Virtual Machine. Proceedings of the 2001 Conference on Object-Oriented Program Systems, Languages and Applications (OOPSLA 01), October Riehle D., M. Tilman, and R. Johnson. Dynamic Object Model. Pattern Languages of Program Design 5. Edited by Dragos Manolescu, Markus Völter, James Noble. Reading, MA: Addison- Wesley, Revault, N, J. Yoder. Adaptive Object-Models and Metamodeling Techniques Workshop Results. Proceedings of the 15th European Conference on Object Oriented Programming (ECOOP 2001). Budapest, Hungary Welicki, L.; J. Yoder; R. Wirfs-Brock; R. Johnson. Towards a Pattern Language for Adaptive Object-Models. Companion of the ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA 2007), Montreal, Canada, Welicki, L.; J. Yoder; R. Wirfs-Brock. Adaptive Object-Model Builder. 16 th Pattern Language of Programs Conference (PLoP 2009), Chicago, Illinois, USA, Welicki, L, J. Yoder, R. Wirfs-Brock. Rendering Patterns for Adaptive Object Models. 14 th Pattern Language of Programs Conference (PLoP 2007), Monticello, Illinois, USA, 2007 Yoder, J.; F. Balaguer; R. Johnson. Architecture and Design of Adaptive Object-Models. Proceedings of the ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA 2001), Tampa, Florida, USA, Yoder, J.; R. Johnson. The Adaptive Object-Model Architectural Style. IFIP 17th World Computer Congress - TC2 Stream / 3rd IEEE/IFIP Conference on Software Architecture: System Design, Development and Maintenance (WICSA 2002), Montréal, Québec, Canada, Yoder, J.; R. Razavi. Metadata and Adaptive Object-Models. ECOOP Workshops (ECOOP 2000), Cannes, France,
Dynamic Model Evolution
Dynamic Model Evolution ATZMON HEN-TOV, Pontis Ltd. DAVID H. LORENZ, Open University of Israel LENA NIKOLAEV, Pontis Ltd. LIOR SCHACHTER, Open University of Israel REBECCA WIRFS-BROCK, Wirfs-Brock Associates,
More informationAOM Metadata Extension Points
AOM Metadata Extension Points PATRICIA MEGUMI MATSUMOTO, Instituto Tecnológico de Aeronáutica FILIPE FIGUEIREDO CORREIA, Faculdade de Engenharia, Universidade do Porto JOSEPH WILLIAM YODER, Refactory,
More informationAOM Metadata Extension Points 1
AOM Metadata Extension Points 1 PATRICIA MEGUMI MATSUMOTO, Instituto Tecnológico de Aeronáutica FILIPE FIGUEIREDO CORREIA, Departamento de Engenharia Informática, Faculdade de Engenharia, Universidade
More informationRendering Patterns for Adaptive Object-Models
Rendering Patterns for Adaptive Object-Models León Welicki ONO (Cableuropa S.A.) Basauri, 7-9 28023, Madrid, Spain +34 637 879 258 lwelicki@acm.org Joseph W. Yoder The Refactory, Inc. 7 Florida Drive Urbana,
More informationUsing Aspects to Make Adaptive Object-Models Adaptable
Using Aspects to Make Adaptive Object-Models Adaptable Ayla Dantas 1, Joseph Yoder 2, Paulo Borba 1, Ralph Johnson 2 1 Software Productivity Group Informatics Center Federal University of Pernambuco Recife,
More informationUsing Aspects to Make Adaptive Object-Models Adaptable
Using Aspects to Make Adaptive Object-Models Adaptable Ayla Dantas 1, Joseph Yoder 2, Paulo Borba, and Ralph Johnson 1 Software Productivity Group Informatics Center Federal University of Pernambuco Recife,
More informationDynamic Generated Adapters from Adaptive Object Models to Static APIs
Dynamic Generated Adapters from Adaptive Object Models to Static APIs Eduardo Martins Guerra, INPE, Brazil Jean Novaes Santos, INPE, Brazil Ademar Aguiar, FEUP, Portugal Luiz Gustavo Veras, INPE, Brazil
More informationsecurity model. The framework allowed for quickly creating applications that examine nancial data stored in a database. The applications that are gene
Patterns For Developing Successful Object-Oriented Frameworks Joseph W. Yoder August 27, 1997 1 Overview The work described here extends last years OOPSLA framework workshop paper [Yoder 1996] describing
More informationObject-Oriented Software Development Goal and Scope
Object-Oriented Software Development Goal and Scope Koichiro Ochimizu Japan Advanced Institute of Science and Technologies School of Information Science Scope and Goal Goal enable you to understand basic
More informationDesign patterns generic models
Design patterns generic models Jyothish Maniyath CDC Software India Pvt Ltd 6 th Floor, Canberra Block, UB City, #24 Vittal Mallya Road, Bangalore, India +91 94482 46718 jyosh@maniyath.com ABSTRACT This
More informationPartial Acquisition Prashant Jain and Michael Kircher
1 Partial Acquisition Prashant Jain and Michael Kircher {Prashant.Jain,Michael.Kircher}@mchp.siemens.de Siemens AG, Corporate Technology Munich, Germany Partial Acquisition 2 Partial Acquisition The Partial
More informationPatterns for Data and Metadata Evolution in Adaptive Object-Models
Patterns for Data and Metadata Evolution in Adaptive Object-Models Hugo Sereno Ferreira 1,2, Filipe Figueiredo Correia 1,3, León Welicki 4 1 ParadigmaXis Arquitectura e Engenharia de Software, S.A., Avenida
More informationConcurrency Control with Java and Relational Databases
Concurrency Control with Java and Relational Databases Sérgio Soares and Paulo Borba Informatics Center Federal University of Pernambuco Recife, PE, Brazil scbs,phmb @cin.ufpe.br Abstract As web based
More informationTransparent Remote Access
Abstract Transparent Remote Access Klaus Marquardt Käthe-Kollwitz-Weg 14, D-23558 Lübeck, Germany Email: marquardt@acm.org In distributed systems, the different processors communicate via network messages.
More informationProceedings of. The Three-Tier Architecture Pattern Language Design Fest
Proceedings of The Three-Tier Architecture Pattern Language Design Fest Introduction Three-tier applications have gained increasing acceptance and popularity in the software industry. Three-tier applications
More informationDynamic Generated Adapters from Adaptive Object Models to Static APIs
Dynamic Generated Adapters from Adaptive Object Models to Static APIs EDUARDO GUERRA, National Institute for Space Research (INPE) - Brazil JEAN SANTOS, National Institute for Space Research (INPE) - Brazil
More informationCreating Reports with Query Objects
Creating Reports with Query Objects John Brant Joseph Yoder Department of Computer Science University of Illinois at Urbana-Champaign Urbana, IL 61801 {brant, yoder}@cs.uiuc.edu Abstract This paper contains
More informationUniversal Communication Component on Symbian Series60 Platform
Universal Communication Component on Symbian Series60 Platform Róbert Kereskényi, Bertalan Forstner, Hassan Charaf Department of Automation and Applied Informatics Budapest University of Technology and
More informationA Metric of the Relative Abstraction Level of Software Patterns
A Metric of the Relative Abstraction Level of Software Patterns Atsuto Kubo 1, Hironori Washizaki 2, and Yoshiaki Fukazawa 1 1 Department of Computer Science, Waseda University, 3-4-1 Okubo, Shinjuku-ku,
More informationCoordination Patterns
Coordination Patterns 1. Coordination Patterns Design Patterns and their relevance for Coordination Oscar Nierstrasz Software Composition Group Institut für Informatik (IAM) Universität Bern oscar@iam.unibe.ch
More informationEvictor. Prashant Jain Siemens AG, Corporate Technology Munich, Germany
1 Evictor Prashant Jain Prashant.Jain@mchp.siemens.de Siemens AG, Corporate Technology Munich, Germany Evictor 2 Evictor The Evictor 1 pattern describes how and when to release resources such as memory
More informationUsing AOP to build complex data centric component frameworks
Using AOP to build complex data centric component frameworks Tom Mahieu, Bart Vanhaute, Karel De Vlaminck, Gerda Janssens, Wouter Joosen Katholieke Universiteit Leuven Computer Science Dept. - Distrinet
More informationPatterns for Data and Metadata Evolution in Adaptive Object-Models
Patterns for Data and Metadata Evolution in Adaptive Object-Models Hugo Sereno Ferreira Faculty of Engineering University of Porto Rua Dr. Roberto Frias, s/n hugo.sereno@fe.up.pt Filipe Figueiredo Correia
More informationWork groups meeting 3
Work groups meeting 3 INF5040 (Open Distributed Systems) Sabita Maharjan sabita@simula.no Department of Informatics University of Oslo September 07, 2009 Design Patterns J2EE Design Patterns Outline EIS
More informationA System of Patterns for Web Navigation
A System of Patterns for Web Navigation Mohammed Abul Khayes Akanda and Daniel M. German Department of Computer Science, University of Victoria, Canada maka@alumni.uvic.ca, dmgerman@uvic.ca Abstract. In
More informationArchitectural Patterns
Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm SEOC2 Spring 2005:
More informationDesign Patterns. Architectural Patterns. Contents of a Design Pattern. Dr. James A. Bednar. Dr. David Robertson
Design Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm A
More informationReflective Design Patterns to Implement Fault Tolerance
Reflective Design Patterns to Implement Fault Tolerance Luciane Lamour Ferreira Cecília Mary Fischer Rubira Institute of Computing - IC State University of Campinas UNICAMP P.O. Box 676, Campinas, SP 3083-970
More informationPatterns. Erich Gamma Richard Helm Ralph Johnson John Vlissides
Patterns Patterns Pattern-based engineering: in the field of (building) architecting and other disciplines from 1960 s Some software engineers also started to use the concepts Become widely known in SE
More informationextrinsic members RoleB RoleA
ASPECT- ORIENTED PROGRAMMING FOR ROLE MODELS Elizabeth A. Kendall Department of Computer Science, Royal Melbourne Institute of Technology GPO Box 2476V, Melbourne, VIC 3001, AUSTRALIA email: kendall@rmit.edu.au
More informationIdioms for Building Software Frameworks in AspectJ
Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,
More informationFrameworks Representations & Perspectives Position Paper Workshop on Language Support for Design Patterns and Frameworks, ECOOP 97
Frameworks Representations & Perspectives Position Paper Workshop on Language Support for Design Patterns and Frameworks, ECOOP 97 Palle Nowack Department of Computer Science, Aalborg University Fredrik
More informationJOURNAL OF OBJECT TECHNOLOGY Online at Published by ETH Zurich, Chair of Software Engineering. JOT, 2002
JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering. JOT, 2002 Vol. 1, No. 2, July-August 2002 Representing Design Patterns and Frameworks in UML Towards
More informationThe Relationships between Domain Specific and General- Purpose Languages
The Relationships between Domain Specific and General- Purpose Languages Oded Kramer and Arnon Sturm Department of Information Systems Engineering, Ben-Gurion University of the Negev Beer-Sheva, Israel
More informationA Metric for Measuring the Abstraction Level of Design Patterns
A Metric for Measuring the Abstraction Level of Design Patterns Atsuto Kubo 1, Hironori Washizaki 2, and Yoshiaki Fukazawa 1 1 Department of Computer Science, Waseda University, 3-4-1 Okubo, Shinjuku-ku,
More informationDistributed Proxy: A Design Pattern for Distributed Object Communication
Distributed Proxy: A Design Pattern for Distributed Object Communication António Rito Silva, Francisco Assis Rosa, Teresa Gonçalves INESC/IST Technical University of Lisbon, Rua Alves Redol n o 9, 1000
More informationAPICES - Rapid Application Development with Graph Pattern
APICES - Rapid Application Development with Graph Pattern Ansgar Bredenfeld GMD Institute for System Design Technology D-53754 Sankt Augustin, Germany bredenfeld@gmd.de Abstract In this paper, we present
More informationCS/CE 2336 Computer Science II
CS/CE 2336 Computer Science II UT D Session 20 Design Patterns An Overview 2 History Architect Christopher Alexander coined the term "pattern" circa 1977-1979 Kent Beck and Ward Cunningham, OOPSLA'87 used
More informationPooling. Michael Kircher, Prashant Jain Corporate Technology, Siemens AG, Munich, Germany
1 Pooling Michael Kircher, Prashant Jain {Michael.Kircher,Prashant.Jain@mchp.siemens.de Corporate Technology, Siemens AG, Munich, Germany Pooling 2 Pooling The Pooling pattern describes how expensive acquisition
More informationTowards Better Support for Pattern-Oriented Software Development
Towards Better Support for Pattern-Oriented Software Development Dietrich Travkin Software Engineering Research Group, Heinz Nixdorf Institute & Department of Computer Science, University of Paderborn,
More informationDeveloping Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach
Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach Ninat Wanapan and Somnuk Keretho Department of Computer Engineering, Kasetsart
More informationPatterns for Asynchronous Invocations in Distributed Object Frameworks
Patterns for Asynchronous Invocations in Distributed Object Frameworks Patterns for Asynchronous Invocations in Distributed Object Frameworks Markus Voelter Michael Kircher Siemens AG, Corporate Technology,
More informationFreeway Patterns for SOA Systems Vinod Sarma N MindTree Ltd. Global Village, RVCE Post, Mysore Rd Bangalore , India
Freeway Patterns for SOA Systems Vinod Sarma N MindTree Ltd. Global Village, RVCE Post, Mysore Rd Bangalore 560069, India +91-80-67064000 vinodsn@mindtree.com Srinivas Rao Bhagavatula MindTree Ltd. Global
More informationAgile Database Techniques Effective Strategies for the Agile Software Developer. Scott W. Ambler
Agile Database Techniques Effective Strategies for the Agile Software Developer Scott W. Ambler Agile Database Techniques Effective Strategies for the Agile Software Developer Agile Database Techniques
More informationClassifying Relationships Between Object-Oriented Design Patterns
Classifying Relationships Between Object-Oriented Design Patterns James Noble Microsoft Research Institute Macquarie University Sydney, Australia kjx@mri.mq.edu.au Abstract Since the publication of the
More informationCoordinator. Example. Prashant Jain Corporate Technology, Siemens AG Munich, Germany
Coordinator Prashant Jain pjain@gmx.net Corporate Technology, Siemens AG Munich, Germany The Coordinator design pattern describes how to maintain system consistency by coordinating completion of tasks
More informationPatterns for Sustaining Muddy Architectures
Patterns for Sustaining Muddy Architectures REBECCA WIRFS-BROCK, Wirfs-Brock Associates, Inc. JOSEPH W. YODER, The Refactory, Inc. Big Ball of Mud (BBoM) architectures are haphazardly structured, sprawling,
More informationMore on Design. CSCI 5828: Foundations of Software Engineering Lecture 23 Kenneth M. Anderson
More on Design CSCI 5828: Foundations of Software Engineering Lecture 23 Kenneth M. Anderson Outline Additional Design-Related Topics Design Patterns Singleton Strategy Model View Controller Design by
More informationPattern Density and Role Modeling of an Object Transport Service
Pattern Density and Role Modeling of an Object Transport Service Dirk Riehle. SKYVA International. 25 First Street, Cambridge, MA 02129, U.S.A. E-mail: driehle@skyva.com or riehle@acm.org Roger Brudermann.
More informationLecture 19: Introduction to Design Patterns
Lecture 19: Introduction to Design Patterns Software System Design and Implementation ITCS/ITIS 6112/8112 091 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte
More informationImproving the Data Warehouse Architecture Using Design Patterns
Association for Information Systems AIS Electronic Library (AISeL) MWAIS 2011 Proceedings Midwest (MWAIS) 5-20-2011 Improving the Data Warehouse Architecture Using Design Patterns Weiwen Yang Colorado
More informationA Pattern Language for MVC Derivatives
A Pattern Language for MVC Derivatives Sami Lappalainen Aalto University School of Science Department of Computer Science sami.k.lappalainen@iki.fi Takashi Kobayashi Tokyo Institute of Technology School
More informationSlide 1. Design Patterns. Prof. Mirco Tribastone, Ph.D
Slide 1 Design Patterns Prof. Mirco Tribastone, Ph.D. 22.11.2011 Introduction Slide 2 Basic Idea The same (well-established) schema can be reused as a solution to similar problems. Muster Abstraktion Anwendung
More informationJUnit A Study on Applying JUnit Framework to Document Knowledge of Object-Oriented Software Systems
JUnit A Study on Applying JUnit Framework to Document Knowledge of Object-Oriented Software Systems Email: {hsieh, s1669021}@ntut.edu.tw JUnit SyncFree 92 [16] SyncFree 1.0 [17] bug fixmerge CVS SyncFree
More informationAn Introduction to Patterns
An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? - 1 Work on software development patterns stemmed from work on patterns from building architecture
More informationDeployment Pattern. YOUNGSU SON, Samsung Electronics JIWON KIM, Samsung Electronics DONGUK KIM, Samsung Electronics JINHO JANG, Samsung Electronics
Deployment Pattern YOUNGSU SON, Samsung Electronics JIWON KIM, Samsung Electronics DONGUK KIM, Samsung Electronics JINHO JANG, Samsung Electronics Software that is deployed into the market needs to be
More informationA Grid-Enabled Component Container for CORBA Lightweight Components
A Grid-Enabled Component Container for CORBA Lightweight Components Diego Sevilla 1, José M. García 1, Antonio F. Gómez 2 1 Department of Computer Engineering 2 Department of Information and Communications
More informationDesign Patterns. Hausi A. Müller University of Victoria. Software Architecture Course Spring 2000
Design Patterns Hausi A. Müller University of Victoria Software Architecture Course Spring 2000 1 Motivation Vehicle for reasoning about design or architecture at a higher level of abstraction (design
More informationIntroduction to Design Patterns
Dr. Michael Eichberg Software Technology Group Department of Computer Science Technische Universität Darmstadt Introduction to Software Engineering Introduction to Design Patterns Patterns 2 PATTERNS A
More informationHOW AND WHEN TO FLATTEN JAVA CLASSES?
HOW AND WHEN TO FLATTEN JAVA CLASSES? Jehad Al Dallal Department of Information Science, P.O. Box 5969, Safat 13060, Kuwait ABSTRACT Improving modularity and reusability are two key objectives in object-oriented
More informationBroker Pattern. Teemu Koponen
Broker Pattern Teemu Koponen tkoponen@iki.fi Broker Pattern Context and problem Solution Implementation Conclusions Comments & discussion Example Application Stock Exchange Trader 1 Stock Exchange 1 Trader
More informationDesign Patterns for Description-Driven Systems
Design Patterns for Description-Driven Systems N. Baker 3, A. Bazan 1, G. Chevenier 2, Z. Kovacs 3, T Le Flour 1, J-M Le Goff 4, R. McClatchey 3 & S Murray 1 1 LAPP, IN2P3, Annecy-le-Vieux, France 2 HEP
More informationWork groups meeting 3
Work groups meeting 3 INF5040 (Open Distributed Systems) Amir Taherkordi amirhost@ifi.uio.no Department of Informatics University of Oslo September 18, 2008 Design Patterns J2EE Design Patterns AntiPatterns
More informationRelating Patterns and Reference Architectures
Relating Patterns and Reference Architectures Eduardo Guerra, LAC/INPE, Brazil Elisa Yumi Nakagawa, ICMC/USP, Brazil Abstract : Both patterns and reference architectures aim to describe solutions to be
More informationUsing Design Patterns in Java Application Development
Using Design Patterns in Java Application Development ExxonMobil Research & Engineering Co. Clinton, New Jersey Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S.
More informationPatterns for polymorphic operations
Patterns for polymorphic operations Three small object structural patterns for dealing with polymorphism Alexander A. Horoshilov hor@epsylontech.com Abstract Polymorphism is one of the main elements of
More informationBatch Lazy Loader Pattern
Batch Lazy Loader Pattern Ryan Senior Intent Retrieve many related, Lazy Loaded objects simultaneously, overcoming the performance degradation that can be associated with the Lazy Load pattern (called
More informationAn Introduction to Patterns and Pattern Languages. Overview. Patterns -- Why? Patterns -- Why?
An Introduction to Patterns and Pattern Languages CSC591O April 7-9, 1997 Raleigh, NC Copyright (C) 1996, Kyle Brown, Bobby Woolf, and Knowledge Systems Corp. All rights reserved. 1 Kyle Brown Senior Member
More informationObject Oriented Methods with UML. Introduction to Design Patterns- Lecture 8
Object Oriented Methods with UML Introduction to Design Patterns- Lecture 8 Topics(03/05/16) Design Patterns Design Pattern In software engineering, a design pattern is a general repeatable solution to
More informationApplication Architectures, Design Patterns
Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term
More informationRemoting Patterns - A Systematic Approach for Design Reuse of Distributed Object Middleware Solutions
Remoting - A Systematic Approach for Design Reuse of Distributed Object Middleware Solutions Markus Völter Michael Kircher Uwe Zdun voelter Siemems AG New Media Lab Ingenieurbüro für Softewaretechnologie
More informationScenarios, Quality Attributes, and Patterns: Capturing and Using their Synergistic Relationships for Product Line Architectures
Scenarios, Quality Attributes, and Patterns: Capturing and Using their Synergistic Relationships for Product Line Architectures Muhammad Ali Babar National ICT Australia Ltd. and University of New South
More informationTool Support for Complex Refactoring to Design Patterns
Tool Support for Complex Refactoring to Design Patterns Carmen Zannier 1, Frank Maurer 1 1 University of Calgary, Department of Computer Science, Calgary, Alberta, Canada T2N 1N4 {zannierc, maurer}@cpsc.ucalgary.ca
More informationIntroduction to Design Patterns
Dr. Michael Eichberg Software Engineering Department of Computer Science Technische Universität Darmstadt Software Engineering Introduction to Design Patterns (Design) Patterns A pattern describes... Patterns
More informationEuroPLoP 2003 Focus Group: Patterns for Component Composition and Adaptation
EuroPLoP 2003 Focus Group: Patterns for Component Composition and Adaptation Uwe Zdun Department of Information Systems, Vienna University of Economics, Austria zdun@acm.org Markus Voelter voelter - Ingenieurbüro
More informationWS01/02 - Design Pattern and Software Architecture
Design Pattern and Software Architecture: VIII. Conclusion AG Softwaretechnik Raum E 3.165 Tele. 60-3321 hg@upb.de VIII. Conclusion VIII.1 Classifications VIII.2 Common Misconceptions VIII.3 Open Questions
More information1 Software Architecture
Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to
More informationApplying the Observer Design Pattern
Applying the Observer Design Pattern Trenton Computer Festival Professional Seminars Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S. in Computer Science Rutgers
More informationConcurrent Object-Oriented Development with Behavioral Design Patterns
Concurrent Object-Oriented Development with Behavioral Design Patterns Benjamin Morandi 1, Scott West 1, Sebastian Nanz 1, and Hassan Gomaa 2 1 ETH Zurich, Switzerland 2 George Mason University, USA firstname.lastname@inf.ethz.ch
More informationComposition Approaches Summary
Composition Approaches Summary Related Work Several successful experiences have reported on the advantages of using patterns in designing applications. For instance, Srinivasan et. al. [26] discuss their
More information1 (ERTSDP) ERTSDP (Embedded Real-Time Systems Design Pattern) (1)
[ ] ERTSDP [ ] UML 1 Liskov [1-4] Gamma 25 [5] GammaBruce Douglas UML [6] ERTSDP Bruce Douglass 2 (ERTSDP) 2.1 [7-9] (problem) QoS (solution) (consequences) 2.2 ERTSDP (Embedded Real-Time Systems Design
More informationAppendix A - Glossary(of OO software term s)
Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component
More informationArchitectural Patterns. Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2
Architectural Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm
More informationArchitectural Patterns
Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm SAPM Spring 2012:
More informationApplying the Factory Method Design Pattern
Applying the Factory Method Design Pattern Trenton Computer Festival Professional Seminars Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S. in Computer Science
More informationStable Model-View-Mapping (MVM) Architectural Pattern
Stable Model-View-Mapping (MVM) Architectural Pattern Mohamed E.Fayad 1, Nayeem Islam 2, and Haitham Hamza 3 1 Computer Engineering Department San José State University San José, CA 95192-0180 Ph: +1 408
More informationLayering Strategies. Peter Eeles RSO (UK) Rational Software Ltd. Version rd August 2001
Layering Strategies Peter Eeles RSO (UK) Rational Software Ltd. peter.eeles@rational.com Version 2.0 23 rd August 2001 A number of techniques exist for decomposing software systems. Layering is one example
More informationSyncFree SyncFree: The Development of an Open Source Personal Data Synchronization Software
SyncFree SyncFree: The Development of an Open Source Personal Data Synchronization Software {s1669021, s1598011, yccheng, hsieh}@ntut.edu.tw SyncFree Abstract People who use different computers at different
More informationOn the Role of Design Patterns in Quality-Driven Re-engineering
On the Role of Design Patterns in Quality-Driven Re-engineering Ladan Tahvildari and Kostas Kontogiannis Dept. of Electrical and Computer Eng. University of Waterloo Waterloo, Ontario Canada, N2L 3G1 {ltahvild,kostas}@swen.uwaterloo.ca
More informationKeywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.
Comparative Study In Utilization Of Creational And Structural Design Patterns In Solving Design Problems K.Wseem Abrar M.Tech., Student, Dept. of CSE, Amina Institute of Technology, Shamirpet, Hyderabad
More informationBroker Revisited. Markus Voelter Copyright 2004, Kircher, Voelter, Jank, Schwanninger, Stal D5-1
Broker Revisited Michael Kircher, Klaus Jank, Christa Schwanninger, Michael Stal {Michael.Kircher,Klaus.Jank,Christa.Schwanninger, Michael.Stal}@siemens.com Markus Voelter voelter@acm.org Copyright 2004,
More informationPlan. Design principles: laughing in the face of change. What kind of change? What are we trying to achieve?
Plan Design principles: laughing in the face of change Perdita Stevens School of Informatics University of Edinburgh What are we trying to achieve? Review: Design principles you know from Inf2C-SE Going
More informationTowards a Java Framework for Knowledge Representation and Inference
Towards a Java Framework for Knowledge Representation and Inference Adrian GIURCA University of Craiova, Faculty of Mathematics and Computer Science Email: giurca@inf.ucv.ro Abstract. The Knowledge Representation
More informationDesign Patterns For Object Oriented Software Development Acm Press
Design Patterns For Object Oriented Software Development Acm Press We have made it easy for you to find a PDF Ebooks without any digging. And by having access to our ebooks online or by storing it on your
More informationPattern-Oriented Development with Rational Rose
Pattern-Oriented Development with Rational Rose Professor Peter Forbrig, Department of Computer Science, University of Rostock, Germany; Dr. Ralf Laemmel, Department of Information Management and Software
More informationIdioms and Design Patterns. Martin Skogevall IDE, Mälardalen University
Idioms and Design Patterns Martin Skogevall IDE, Mälardalen University 2005-04-07 Acronyms Object Oriented Analysis and Design (OOAD) Object Oriented Programming (OOD Software Design Patterns (SDP) Gang
More informationPattern-Based Architectural Design Process Model
Pattern-Based Architectural Design Process Model N. Lévy, F. Losavio Abstract: The identification of quality requirements is crucial to develop modern software systems, especially when their underlying
More informationThe DCI Architecture: A New Legal Notice Vision of Object-Oriented Programming Trygve Reenskaug
The DCI Architecture: A New Vision of Object-Oriented Programming http://www.artima.com/articles/dci_vision.html Trygve Reenskaug Institutt for informatikk Universitetet i Oslo heim.ifi.uio.no/~trygver/themes/babyide
More informationLectures 24 and 25 Introduction to Architectural Styles and Design Patterns
Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte
More informationA MULTI-LEVEL DESIGN PATTERN FOR EMBEDDED SOFTWARE *
A MULTI-LEVEL DESIGN PATTERN FOR EMBEDDED SOFTWARE * Ricardo J. Machado and João M. Fernandes Dept. Sistemas de Informação & Dept. Informática, Universidade do Minho, Portugal Abstract: It is a common
More information