Patterns for Parallel Software Design
by Jorge Luis Ortega-Arjona
Part 21 of the Wiley Software Patterns series
Essential reading to understand patterns for parallel programming.
Software patterns have revolutionized the way we think about how software is designed, built, and documented, and the design of parallel software requires you to consider other particular design aspects and special skills. From clusters to supercomputers, success heavily depends on the design skills of software developers.
“Patterns for Parallel Software Design” presents a pattern-oriented software architecture approach to parallel software design. This approach is not a design method in the classic sense, but a new way of managing and exploiting existing design knowledge for designing parallel programs. Moreover, such approaches enhance not only build-time properties of parallel systems, but also, and particularly, their run-time properties.
• Features known solutions in concurrent and distributed programming, applied to the development of parallel programs
• Provides architectural patterns that describe how to divide an algorithm and/or data to find a suitable partition and link it with a programming structure that allows for such a division
• Presents an architectural point of view and explains the development of parallel software
“Patterns for Parallel Software Design” will give you the skills you need to develop parallel software.
Model-Driven Software Development
Technology, Engineering, Management
Part of the Wiley Software Patterns series
“Model-Driven Software Development” (MDSD) is currently a highly regarded development paradigm among developers and researchers. With the advent of OMG's MDA and Microsoft's Software Factories, the MDSD approach has moved to the centre of the programmer's attention, becoming the focus of conferences such as OOPSLA, JAOO and OOP.
MDSD is about using domain-specific languages to create models that express application structure or behaviour in an efficient and domain-specific way. These models are subsequently transformed into executable code by a sequence of model transformations.
This practical guide for software architects and developers is peppered with practical examples and extensive case studies. International experts deliver:
* A comprehensive overview of MDSD and how it relates to industry standards such as MDA and Software Factories.
* Technical details on meta modeling, DSL construction, model-to-model and model-to-code transformations, and software architecture.
* Invaluable insight into the software development process, plus engineering issues such as versioning, testing and product line engineering.
* Essential management knowledge covering economic and organizational topics, from a global perspective.
Get started and benefit from some practical support along the way!
Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects
Part of the Wiley Software Patterns series
Designing application and middleware software to run in concurrent and networked environments is a significant challenge to software developers. The patterns catalogued in this second volume of “Pattern-Oriented Software Architectures” (POSA) form the basis of a pattern language that addresses issues associated with concurrency and networking.
The book presents 17 interrelated patterns ranging from idioms through architectural designs. They cover core elements of building concurrent and network systems: service access and configuration, event handling, synchronization, and concurrency. All patterns present extensive examples and known uses in multiple programming languages, including C++, C, and Java.
The book can be used to tackle specific software development problems or read from cover to cover to provide a fundamental understanding of the best practices for constructing concurrent and networked applications and middleware.
Patterns for Fault Tolerant Software
Part of the Wiley Software Patterns series
Software patterns have revolutionized the way developer's and architects think about how software is designed, built and documented.
This new title in Wiley's prestigious Series in Software Design Patterns presents proven techniques to achieve patterns for fault tolerant software. This is a key reference for experts seeking to select a technique appropriate for a given system.
Readers are guided from concepts and terminology, through common principles and methods, to advanced techniques and practices in the development of software systems. References will provide access points to the key literature, including descriptions of exemplar applications of each technique.
Organized into a collection of software techniques, specific techniques can be easily found with sufficient detail to allow appropriate choices for the system being designed.
Security Patterns in Practice
Designing Secure Architectures Using Software Patterns
by Eduardo Fernandez-Buglioni
Part of the Wiley Software Patterns series
Learn to combine security theory and code to produce secure systems
Security is clearly a crucial issue to consider during the design and implementation of any distributed software architecture. Security patterns are increasingly being used by developers who take security into serious consideration from the creation of their work. Written by the authority on security patterns, this unique book examines the structure and purpose of security patterns, illustrating their use with the help of detailed implementation advice, numerous code samples, and descriptions in UML.
• Provides an extensive, up-to-date catalog of security patterns
• Shares real-world case studies so you can see when and how to use security patterns in practice
• Details how to incorporate security from the conceptual stage
• Highlights tips on authentication, authorization, role-based access control, firewalls, wireless networks, middleware, VoIP, web services security, and more
• Author is well known and highly respected in the field of security and an expert on security patterns
Security Patterns in Practice shows you how to confidently develop a secure system step by step.
Remoting Patterns
Foundations of Enterprise, Internet and Realtime Distributed Object Middleware
Part of the Wiley Software Patterns series
Remoting offers developers many ways to customize the communications process, for efficiency, security, performance and power, and allows seamless integration of components running on several computers into a single application. This book exposes the full power of remoting to developers working in mixed platform environments in a way that will ensure they have a deep understanding of what remoting is capable of, and how they can make it work the way they want.
Pattern-Oriented Software Architecture, a System of Patterns
Part of the Wiley Software Patterns series
Pattern-oriented software architecture is a new approach to software development. This book represents the progression and evolution of the pattern approach into a system of patterns capable of describing and documenting large-scale applications. A pattern system provides, on one level, a pool of proven solutions to many recurring design problems. On another it shows how to combine individual patterns into heterogeneous structures and as such it can be used to facilitate a constructive development of software systems. Uniquely, the patterns that are presented in this book span several levels of abstraction, from high-level architectural patterns and medium-level design patterns to low-level idioms. The intention of, and motivation for, this book is to support both novices and experts in software development. Novices will gain from the experience inherent in pattern descriptions and experts will hopefully make use of, add to, extend and modify patterns to tailor them to their own needs. None of the pattern descriptions are cast in stone and, just as they are borne from experience, it is expected that further use will feed in and refine individual patterns and produce an evolving system of patterns.
Security Patterns
Integrating Security and Systems Engineering
Part of the Wiley Software Patterns series
Most security books are targeted at security engineers and specialists. Few show how build security into software. None breakdown the different concerns facing security at different levels of the system: the enterprise, architectural and operational layers. “Security Patterns” addresses the full spectrum of security in systems design, using best practice solutions to show how to integrate security in the broader engineering process.
• Essential for designers building large-scale systems who want best practice solutions to typical security problems
• Real world case studies illustrate how to use the patterns in specific domains
Pattern-Oriented Software Architecture, Patterns for Resource Management
Part of the Wiley Software Patterns series
The first volume of the POSA pattern series introduced a broad-spectrum of general-purpose patterns in software design and architecture. The second narrowed the focus to fundamental patterns for building sophisticated concurrent and networked software systems and applications. This volume uses design patterns to present techniques for implementing effective resource management in a system.
The patterns are covered in detail making use of several examples providing directions to the readers on how to implement the presented patterns. Additionally, the volume presents a thorough introduction into resource management and a case study where the patterns are applied to the domain of mobile radio networks. The patterns are grouped by different areas of resource management and hence address the complete lifecycle of resources: resource acquisition, coordination and release.
Patterns for Computer-Mediated Interaction
Part of the Wiley Software Patterns series
Written by well-respected experts, this how-to guide provides patterns for the design of human computer human interaction (HCHI). An increasing number of applications are currently designed for use by more than one user, e.g.: multi-player games, interactive web sites, mobile phones, collaborative learning systems, interactive workspaces and smart environments. In these areas there is a shift from (HCI) human computer interaction to (HCHI) human computer human interaction. The role of patterns in this movement is twofold: 1st—patterns focus on the human user of the system; 2nd—patterns assist developers in the development process of groupware applications.