A.
'Frameworks & Environments' group, led by Richard P. Gabriel
|
 |
"Metaprogramming in Ruby -- A Pattern
Catalog" by
Sebastian Günther, Marco Fischer "Attack Patterns in VoIP" by Juan C. Pelaez, Eduardo B. Fernandez, Maria M. Larrondo-Petrie, Christian Wieser
In VoIP, in order to avoid attacks and discover security vulnerabilities, it is necessary to be aware of typical risks and to have a good understanding of how vulnerabilities can be exploited. In a previous paper we presented the concept of attack patterns. Attack patterns describe from the point of view of the attacker, how a type of attack is performed (what system units it uses and how), analyzes the ways of stopping the attack by enumerating possible security patterns that can be applied for this purpose, and describes how to trace the attack once it has happened by appropriate collection and observation of forensics data. We present a set of attack patterns for VoIP: Denial of Service (DoS), Call Interception, and Theft of Service on VoIP. |
 |
"Framework Engineering"
by Youngsu Son, Jemin Jeon, Hyukjoon Lee, Gaeyoung Lee "Scalability Design Patterns" by Kanwardeep Singh Ahluwalia
Achieving highest possible scalability is a complex combination of many factors. This paper presents a pattern language that can be used to make a system highly scalable. |
 |
"Patterns of Closed Object-Oriented
Meta-Architectures"
by Hugo Sereno Ferreira, Filipe Figueiredo Correia, Joseph
Yoder, Ademar Aguiar "Patterns for Access Control in Distributed Systems" by Nelly Delessy, Eduardo B. Fernandez, Maria M. Larrondo-Petrie, Jie Wu
Distributed systems introduce a new variety of security threats. The organizations that own them must protect their information assets from attacks. To do this we need to start with highlevel models that represent the security policies of the institution. We present patterns that derive from traditional models: first, the Policy-Based Access Control which models how to decide if a subject is authorized to access an object according to policies defined in a central policy repository. Then we present implementation-oriented patterns that implement the Access Matrix or RBAC model: The ACL pattern allows control access to objects by indicating which subjects can access an object and in what way. There is usually an ACL associated with each object. The Capability pattern allows control access to objects by providing a credential or ticket to be given to a subject for accessing an object in a specific way. Capabilities are given to the principal. |
 |
"Design Principles for Internal
Domain-Specific Languages: A Pattern Catalog illustrated by
Ruby" by Sebastian
Günther, Thomas Cleenewerck "Network Congestion Control at the Application Layer" by Paul Adamczyk, Federico Balaguer, Munawar Hafiz, Craig L. Robinson
Application-layer protocols play a special role in network programming. Typical programmers are more familiar with them and more likely to implement them. Well-designed application-layer protocols follow many patterns that improve the performance of applications using these protocols. We present a subset of these patterns that focuses on the congestion control at the application layer. |
 |
"Architectural Patterns for
Metadata-based Frameworks Usage"
by Eduardo Guerra, Clovis Fernandes, Fábio Silveira "A Design Pattern for the Transfer of Running Applications between Devices" by Paul Austrem
Mobile information systems are growing in acceptance; in order for the vision of true mobility to be realized users must be able to seamlessly move running applications between devices in an adhoc manner. The task of implementing mechanisms to ensure that a running application is successfully moved from one device to another can be considered a generic task, wherein the same fundamental design can be reused. This work tenders a domain specific design pre-pattern that resolves the problems associated with transferring a running application from one device to another whilst maintaining state and tailoring to capabilities. It is meant to aid in the domain of mobile workers, and can be applied as a container between the OS and the applications or as a value-added service by ASPs. The solution adds complexity and imposes conventions on the extendibility of a system, but allows users to maintain state so they can seamlessly move their work between devices. |
 |
B. 'Process
& Design' group, led by Ralph Johnson
|
 |
"Persistent State Pattern"
by André Saúde, Ricardo Victório, Gabriel Coutinho
"SIMD: An Additional Pattern for PLPP
(Pattern Language for Parallel Programming)" by Berna L. Massingill, Timothy G. Mattson, Beverly A. Sanders
Recent trends in hardware, such as IBM's Cell Broadband Engine and GPUs that can be used for general-purpose computing, have made widely available systems for which a SIMD (Single Instruction, Multiple Data) style of data-parallel programming is appropriate. This paper presents a pattern to help software developers construct parallel programs for environments that support this style of data parallelism. In this approach, the program is viewed as a single thread of control, with implicitly parallel updates to data. This pattern is a new addition to the Pattern Language for Parallel Programming (PLPP) presented in our previous work. |
 |
"Messaging Design Pattern and pattern
implementation"
by Al Galvis
"Patterns for Refactoring to Aspects: an incipient Pattern Language" by Miguel Pessoa Monteiro, Ademar Aguiar
Aspect-Oriented Programming is an emergent programming paradigm providing novel constructs that eliminate code scattering and tangling by modularizing crosscutting concerns in their own aspect modules. Many current aspect-oriented languages are backwards compatible extensions to
existing, popular languages, which opens the way to aspectize systems written in those languages. This paper contributes with the beginnings of a pattern language for refactoring existing systems into aspect-oriented versions of those systems. The pattern language covers the early assessment and decision stages: when it is feasible to refactor to
aspects, assessment of the necessary pre-requisites and establishing the desirable strategy for the refactoring process.
|
 |
"Observations on the Observer Pattern "
by Christian Köppe
"A Pattern Story for Aspect-Oriented State Machines" by Mark Mahoney, Tzilla Elrad
This paper describes a solution to a real world problem using a combination of well-known patterns. The problem deals with combining implementations of state based behaviors in a loosely coupled manner. The state based behaviors are modeled with state machines and implemented with the State Pattern. The coordination between the loosely coupled state machines is achieved with the Interceptor Pattern. The Abstract Factory Pattern is used to shield the original state machine developers from being aware that their state machines are being combined in new and different ways. |
 |
"A Pattern for a Sensor Node"
by Anupama Sahu, Eduardo B. Fernandez, Mihaela Cardei
"Design Patterns in Eos" by Hridesh Rajan
In earlier work, we showed that the AspectJ notions of aspect and class can be unified in a new module construct that we called the classpect, and that this new model is simpler and able to accommodate a broader set of requirements for modular solutions to complex integration problems. We embodied our unified model in the Eos language design. The main contribution of this paper is a case study, which considers the implementation of the Gang-of-Four (GOF) design patterns [3] in Eos to analyze the effect of new programming language constructs on these implementations. We also compare these implementations with the AspectJ's implementation. Our result shows that the Eos implementation showed improvement in 7 out of 23 design patterns, and are no worse in case of other 16 patterns. These improvements were mainly manifested in being able to realize the intent of the design patterns more clearly. The design structures realized in the Eos implementation provide supporting evidence for the potential benefits of the unified model. |
 |
"A Pattern System of Underlying Theories
for Process Improvement"
by Michael Van Hilst, Eduardo B. Fernandez
"Service Delivery & Deployment Design Patterns" by Atul Jain
In today's rapidly expanding and highly competitive telecom market, the goal of every service provider is to create and bring to market new, highly adaptive and compelling services which will increase revenue and differentiate them from the competition. From a service user perspective, the consumer expects convenience, ease of use, security and support to be always best connected. Services are getting decoupled from the underlying network infrastructure delivering those services leading to a true service oriented architecture and subscriber-centric approach to service delivery. This paper attempts to bring few patterns that are fundamental to the design of evolving service networks. |
 |
"Extending the Strategy
Pattern for parameterized Algorithms *" by
Ognjen Sobajic |
 |
C. 'People & Ideas' group, led by
Linda Rising
|
 |
"Patterns for Introducing New Ideas"
by Mary Lynn Manns, Linda Rising
"SIMD: An Additional Pattern for PLPP
(Pattern Language for Parallel Programming)" by Berna L. Massingill, Timothy G. Mattson, Beverly A. Sanders
Recent trends in hardware, such as IBM's Cell Broadband Engine and GPUs that can be used for general-purpose computing, have made widely available systems for which a SIMD (Single Instruction, Multiple Data) style of data-parallel programming is appropriate. This paper presents a pattern to help software developers construct parallel programs for environments that support this style of data parallelism. In this approach, the program is viewed as a single thread of control, with implicitly parallel updates to data. This pattern is a new addition to the Pattern Language for Parallel Programming (PLPP) presented in our previous work. |
 |
"Some patterns for organizing recurring PLoP
events" by Lise
Hvatum
"Patterns for Refactoring to Aspects: an incipient Pattern Language" by Miguel Pessoa Monteiro, Ademar Aguiar
Aspect-Oriented Programming is an emergent programming paradigm providing novel constructs that eliminate code scattering and tangling by modularizing crosscutting concerns in their own aspect modules. Many current aspect-oriented languages are backwards compatible extensions to
existing, popular languages, which opens the way to aspectize systems written in those languages. This paper contributes with the beginnings of a pattern language for refactoring existing systems into aspect-oriented versions of those systems. The pattern language covers the early assessment and decision stages: when it is feasible to refactor to
aspects, assessment of the necessary pre-requisites and establishing the desirable strategy for the refactoring process.
|
 |
"The structure of patterns"
by Christian Kohls
"A Pattern Story for Aspect-Oriented State Machines" by Mark Mahoney, Tzilla Elrad
This paper describes a solution to a real world problem using a combination of well-known patterns. The problem deals with combining implementations of state based behaviors in a loosely coupled manner. The state based behaviors are modeled with state machines and implemented with the State Pattern. The coordination between the loosely coupled state machines is achieved with the Interceptor Pattern. The Abstract Factory Pattern is used to shield the original state machine developers from being aware that their state machines are being combined in new and different ways. |
 |
"Patterns for Design Thinking"
by Rebecca Rikner, Dave West
"Design Patterns in Eos" by Hridesh Rajan
In earlier work, we showed that the AspectJ notions of aspect and class can be unified in a new module construct that we called the classpect, and that this new model is simpler and able to accommodate a broader set of requirements for modular solutions to complex integration problems. We embodied our unified model in the Eos language design. The main contribution of this paper is a case study, which considers the implementation of the Gang-of-Four (GOF) design patterns [3] in Eos to analyze the effect of new programming language constructs on these implementations. We also compare these implementations with the AspectJ's implementation. Our result shows that the Eos implementation showed improvement in 7 out of 23 design patterns, and are no worse in case of other 16 patterns. These improvements were mainly manifested in being able to realize the intent of the design patterns more clearly. The design structures realized in the Eos implementation provide supporting evidence for the potential benefits of the unified model. |
 |
"Patterns for Sustainable Development"
by Linda Rising, Karl Rehmer
"Service Delivery & Deployment Design Patterns" by Atul Jain
In today's rapidly expanding and highly competitive telecom market, the goal of every service provider is to create and bring to market new, highly adaptive and compelling services which will increase revenue and differentiate them from the competition. From a service user perspective, the consumer expects convenience, ease of use, security and support to be always best connected. Services are getting decoupled from the underlying network infrastructure delivering those services leading to a true service oriented architecture and subscriber-centric approach to service delivery. This paper attempts to bring few patterns that are fundamental to the design of evolving service networks. |
 |
"Patterns for Online
Discussions" by Jill O'Sullivan, Raul Zevallos |
 |
D. 'Security & Systems' group, led by
Rebecca Wirfs-Brock
|
 |
"Towards a FLOSS Pattern Language"
by Christoph Hannebauer, Vincent Wolff Marting, Volker Gruhn
"SIMD: An Additional Pattern for PLPP
(Pattern Language for Parallel Programming)" by Berna L. Massingill, Timothy G. Mattson, Beverly A. Sanders
Recent trends in hardware, such as IBM's Cell Broadband Engine and GPUs that can be used for general-purpose computing, have made widely available systems for which a SIMD (Single Instruction, Multiple Data) style of data-parallel programming is appropriate. This paper presents a pattern to help software developers construct parallel programs for environments that support this style of data parallelism. In this approach, the program is viewed as a single thread of control, with implicitly parallel updates to data. This pattern is a new addition to the Pattern Language for Parallel Programming (PLPP) presented in our previous work. |
 |
"Adaptive Object-Model Metadata Evolver"
by Atzmon Hen-Tov, David H. Lorenz, Lena Nikolaev, Lior
Schachter, Rebecca Wirfs-Brock, Joseph W. Yoder
"Patterns for Refactoring to Aspects: an incipient Pattern Language" by Miguel Pessoa Monteiro, Ademar Aguiar
Aspect-Oriented Programming is an emergent programming paradigm providing novel constructs that eliminate code scattering and tangling by modularizing crosscutting concerns in their own aspect modules. Many current aspect-oriented languages are backwards compatible extensions to
existing, popular languages, which opens the way to aspectize systems written in those languages. This paper contributes with the beginnings of a pattern language for refactoring existing systems into aspect-oriented versions of those systems. The pattern language covers the early assessment and decision stages: when it is feasible to refactor to
aspects, assessment of the necessary pre-requisites and establishing the desirable strategy for the refactoring process.
|
 |
"Model-Driven Security Patterns
Application and Validation"
by Yuki Shiroma, Atsuto Kubo, Nobukazu Yoshioka, Eduardo B.
Fernandez, Hironori Washizaki, Yoshiaki Fukazawa
"A Pattern Story for Aspect-Oriented State Machines" by Mark Mahoney, Tzilla Elrad
This paper describes a solution to a real world problem using a combination of well-known patterns. The problem deals with combining implementations of state based behaviors in a loosely coupled manner. The state based behaviors are modeled with state machines and implemented with the State Pattern. The coordination between the loosely coupled state machines is achieved with the Interceptor Pattern. The Abstract Factory Pattern is used to shield the original state machine developers from being aware that their state machines are being combined in new and different ways. |
 |
"A Security Pattern for Data Integrity
in P2P Systems" by
Benjamin Schleinzer, Nobukazu Yoshioka
"Design Patterns in Eos" by Hridesh Rajan
In earlier work, we showed that the AspectJ notions of aspect and class can be unified in a new module construct that we called the classpect, and that this new model is simpler and able to accommodate a broader set of requirements for modular solutions to complex integration problems. We embodied our unified model in the Eos language design. The main contribution of this paper is a case study, which considers the implementation of the Gang-of-Four (GOF) design patterns [3] in Eos to analyze the effect of new programming language constructs on these implementations. We also compare these implementations with the AspectJ's implementation. Our result shows that the Eos implementation showed improvement in 7 out of 23 design patterns, and are no worse in case of other 16 patterns. These improvements were mainly manifested in being able to realize the intent of the design patterns more clearly. The design structures realized in the Eos implementation provide supporting evidence for the potential benefits of the unified model. |
 |
"Multiple Secure observers using J2EE *"
by Vivek Gondi
"Service Delivery & Deployment Design Patterns" by Atul Jain
In today's rapidly expanding and highly competitive telecom market, the goal of every service provider is to create and bring to market new, highly adaptive and compelling services which will increase revenue and differentiate them from the competition. From a service user perspective, the consumer expects convenience, ease of use, security and support to be always best connected. Services are getting decoupled from the underlying network infrastructure delivering those services leading to a true service oriented architecture and subscriber-centric approach to service delivery. This paper attempts to bring few patterns that are fundamental to the design of evolving service networks. |
 |
E. 'Reliability & Trust' group, led by
Robert Hanmer
|
 |
"Patterns for building dependable
systems with trusted bases"
by Eunsuk Kang and Daniel Jackson "SIMD: An Additional Pattern for PLPP
(Pattern Language for Parallel Programming)" by Berna L. Massingill, Timothy G. Mattson, Beverly A. Sanders
Recent trends in hardware, such as IBM's Cell Broadband Engine and GPUs that can be used for general-purpose computing, have made widely available systems for which a SIMD (Single Instruction, Multiple Data) style of data-parallel programming is appropriate. This paper presents a pattern to help software developers construct parallel programs for environments that support this style of data parallelism. In this approach, the program is viewed as a single thread of control, with implicitly parallel updates to data. This pattern is a new addition to the Pattern Language for Parallel Programming (PLPP) presented in our previous work. |
 |
"Patterns for Measuring Performance-Related
QoS Properties in Distributed Systems"
by Ernst Oberortner, Uwe Zdun, Schahram Dustdar "Patterns for Refactoring to Aspects: an incipient Pattern Language" by Miguel Pessoa Monteiro, Ademar Aguiar
Aspect-Oriented Programming is an emergent programming paradigm providing novel constructs that eliminate code scattering and tangling by modularizing crosscutting concerns in their own aspect modules. Many current aspect-oriented languages are backwards compatible extensions to
existing, popular languages, which opens the way to aspectize systems written in those languages. This paper contributes with the beginnings of a pattern language for refactoring existing systems into aspect-oriented versions of those systems. The pattern language covers the early assessment and decision stages: when it is feasible to refactor to
aspects, assessment of the necessary pre-requisites and establishing the desirable strategy for the refactoring process.
|
 |
"Software Rejuvenation"
by Robert Hanmer "A Pattern Story for Aspect-Oriented State Machines" by Mark Mahoney, Tzilla Elrad
This paper describes a solution to a real world problem using a combination of well-known patterns. The problem deals with combining implementations of state based behaviors in a loosely coupled manner. The state based behaviors are modeled with state machines and implemented with the State Pattern. The coordination between the loosely coupled state machines is achieved with the Interceptor Pattern. The Abstract Factory Pattern is used to shield the original state machine developers from being aware that their state machines are being combined in new and different ways. |
 |
"Sharing Bad Practices in Design to
Improve the Use of Patterns"
by Cédric Bouhours, Hervé Leblanc, Christian Percebois "Design Patterns in Eos" by Hridesh Rajan
In earlier work, we showed that the AspectJ notions of aspect and class can be unified in a new module construct that we called the classpect, and that this new model is simpler and able to accommodate a broader set of requirements for modular solutions to complex integration problems. We embodied our unified model in the Eos language design. The main contribution of this paper is a case study, which considers the implementation of the Gang-of-Four (GOF) design patterns [3] in Eos to analyze the effect of new programming language constructs on these implementations. We also compare these implementations with the AspectJ's implementation. Our result shows that the Eos implementation showed improvement in 7 out of 23 design patterns, and are no worse in case of other 16 patterns. These improvements were mainly manifested in being able to realize the intent of the design patterns more clearly. The design structures realized in the Eos implementation provide supporting evidence for the potential benefits of the unified model. |
 |
"Pattern-oriented Knowledge Model for
Architecture Design"
by Kiran Kumar, Prabhakar T.V. "Service Delivery & Deployment Design Patterns" by Atul Jain
In today's rapidly expanding and highly competitive telecom market, the goal of every service provider is to create and bring to market new, highly adaptive and compelling services which will increase revenue and differentiate them from the competition. From a service user perspective, the consumer expects convenience, ease of use, security and support to be always best connected. Services are getting decoupled from the underlying network infrastructure delivering those services leading to a true service oriented architecture and subscriber-centric approach to service delivery. This paper attempts to bring few patterns that are fundamental to the design of evolving service networks. |
 |
"The AnyCorrectiveAction
Stable Design Pattern *"
by Shivanshu Singh, Mohamed Fayad |
 |