Skip to Main Content
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 a distributed 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.