Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
A Classification and Comparison Framework for Software Architecture Description Languages
IEEE Transactions on Software Engineering
Essential COM
Making Components Contract Aware
Computer
Parallel components for PDEs and optimization: some issues and experiences
Parallel Computing - Special issue: Advanced environments for parallel and distributed computing
Toward a Common Component Architecture for High-Performance Scientific Computing
HPDC '99 Proceedings of the 8th IEEE International Symposium on High Performance Distributed Computing
A Scalable QoS-Aware Service Aggregation Model for Peer-to-Peer Computing Grids
HPDC '02 Proceedings of the 11th IEEE International Symposium on High Performance Distributed Computing
A Performance Interface for Component-Based Applications
IPDPS '03 Proceedings of the 17th International Symposium on Parallel and Distributed Processing
Specifying and Measuring Quality of Service in Distributed Object Systems
ISORC '98 Proceedings of the The 1st IEEE International Symposium on Object-Oriented Real-Time Distributed Computing
Faster PDE-based simulations using robust composite linear solvers
Future Generation Computer Systems - Special issue: Selected numerical algorithms
Hi-index | 0.00 |
Commercial component-based software engineering practices, such as the CORBA component model, Enterprise JavaBeans, and COM, are well-established in the business computing community. These practices present an approach for managing the increasing complexity of scientific software development, which has motivated the Common Component Architecture (CCA), a component specification targeted at high-performance scientific application development. The CCA is an approach to component development that is minimal in terms of the complexity of component interface requirements and imposes a minimal performance penalty. While this lightweight specification has enabled the development of a number of high-performance scientific components in several domains, the software design process for developing component-based scientific codes is not yet well defined. This fact, coupled with the fact that component-based approaches are still new to the scientific community, may lead to an ad hoc design process, potentially resulting in code that is harder to maintain, extend, and test and may negatively affect performance. We explore some concepts and approaches based on widely accepted software architecture design principles and discuss their potential application in the development of high-performance scientific component applications. We particularly emphasize those principles and approaches that contribute to making CCA-based applications easier to design, implement, and maintain, as well as enabling dynamic adaptivity with the goal of maximizing performance.