EDOC '05 Proceedings of the Ninth IEEE International EDOC Enterprise Computing Conference
Architectural paradigms for robotics applications
Advanced Engineering Informatics
A systematic review of software architecture evolution research
Information and Software Technology
Distribution alternatives for superimposed information services in digital libraries
DELOS'04 Proceedings of the 6th Thematic conference on Peer-to-Peer, Grid, and Service-Orientation in Digital Library Architectures
Hi-index | 0.00 |
Object-Oriented Architecture (OOA), Component-Based Architecture (CBA), and Service-Based Architecture (SBA) represent three technical architecture paradigms in current software systems. Object, Component, and Service are three key concepts in distributed software systems. From implementation point of view, a service is implemented by one or more components, which in turn are often implemented in object-oriented programming languages like C++ and Java. Distributed component-based software systems can be structured in any of the architecture paradigms, some have more advantages than others depending on business requirements. Understanding the characteristics, features, benefits, and concerns of the architecture paradigms is crucial to the successful design, implementation and operation of adistributed system.In this paper, we describe the characteristics of the three architecture paradigms and the business drivers for their applications. The parallel evolution of architecture paradigms and software development methodologies is discussed in the context of practical business needs.Component-based software developers for distributed systems should decide on the architecture paradigms based on business requirements. The evolution of architecture paradigms and the selection of architecture paradigms have profound influences and impacts on component-based distributed systems, in the way components are designed and in the way component interactions are implemented. We discuss these influences and impacts with the goal of deriving some practical principles and strategies to best deal with them in software engineering practices.