Académique Documents
Professionnel Documents
Culture Documents
33rd EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA 2007)
0-7695-2977-1/07 $25.00 © 2007
reasonable utilization, combination and adaptation of today, such as varying platforms, varying protocols,
the two paradigms is also outlined through looking into various devices, the Internet, etc [7]. Service-oriented
a set of research studies in how they have been used. software engineering paradigm has emerged to address
These studies have exampled the benefits of improved these issues.
quality attributes of software solutions through Service-oriented software engineering (SOSE) is a
combining CBSE and SOSE. Since both paradigms are software engineering paradigm that aims to support the
evolving rapidly, there exists increasing research development of rapid, low-cost and easy composition
interest in further exploration of their combination of distributed applications even in heterogeneous
potentials. We contend that a good understanding of environments [13]. It utilizes services as fundamental
respective characteristics is a necessary step for this elements for developing applications and solutions.
exploration. Important areas of research within SOSE include
The remainder of the paper is structured as follows. service foundations, service composition, service
Section 2 presents overview of component-based and management and monitoring and service-oriented
service-oriented software engineering. Section 3 gives engineering [13]. Service foundations provide service-
a comparison analysis framework of the two paradigms oriented communication technologies to support run
from different perspectives, including key concepts and time service-oriented infrastructure and connect
principles, process, technology and composition. heterogeneous systems and applications. These
Section 4 discusses state of the art research in communication technologies provide the
combining the strengths of CBSE and SOSE. Section 5 communication mechanisms between service providers
concludes the paper. and service requesters; they differ with respect to
service description techniques and messaging functions
2. Overview of component-based and [6]. Service composition encompasses necessary roles
service-oriented software engineering and functionality to support service composition [13].
The dynamic composition feature in SOSE makes QoS
Component-based software engineering (CBSE) is a
a major challenge. Different initiatives have emerged
software engineering paradigm that aims to accelerate
such as orchestration and choreography. Service
software development and promote software reusability
management encompasses the control and monitoring
and maintenance through assembling components to
of SOA-based applications throughout life cycle.
software systems that meet certain business
A key element in SOSE is the service-oriented
requirements. The prerequisite requirements that enable
interaction pattern, i.e. service-oriented architecture
components to be integrated and work together are
(SOA), which enables a collection of services to
component models and component framework [20].
communicate with each other. SOA is a way of
Component models specify the standards and
designing a software system to provide services to
conventions that components need to follow during
applications or other services through published and
component composition and interaction. Component
discoverable interfaces. The basic elements of service-
framework provides design time and run time
oriented architecture are illustrated in Figure 1.
infrastructure.
Numerous component models exist nowadays. Some
examples are COM/DCOM/COM+, .Net component
model, JavaBeans, Enterprise JavaBeans and CORBA
component model. Examples of component models that
have been developed specifically for applications to
embedded systems include Koala [11], Rubus [21],
PECOS [18].
Important areas of research within CBSE include,
but not limited to, determination and specification of
Figure 1 Service-oriented interaction pattern
QoS (Quality of Service), predictability of non- As shown in Figure 1, SOA has three main actors: a
functional properties, component interference and service provider, a service requester and a service
process related activities such as component registry. The service provider defines service
classification, identification and selection, component descriptions of a collection of services, supplies
adaptation, testing and deployment techniques. services with functionalities and publishes the
Although CBSE has proved to be successful for descriptions of the services so as to make the services
software reuse and maintainability, it does not address discoverable. The service registry contains service
all of the complexities software developers are facing descriptions and references to service providers and
33rd EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA 2007)
0-7695-2977-1/07 $25.00 © 2007
provides mechanisms for service publishing and functionality through well-defined interfaces. Thus, the
discovery [14], e.g. Universal Description, Discovery services can be reused and accessed at various levels of
and Integration (UDDI). The service requester is a the enterprise application and even across enterprises
client that calls a service provider. It can be an end-user boundaries.
application or other services. A service requester 3.1.2. Specification. In CBSE, the component
searches in the service registry for a specific service via specification provides for the clients the definition of
the service interface description. When the service the component’s interface, i.e. the operations and
interfaces match with the criteria of the service context dependencies. Furthermore, an abstract
requester, the service requester will use the service definition of the component’s internal structure is
description and make a dynamic binding with the specified for the component providers [4].
service provider, invoke the service and interact In SOSE, the service description is a service
directly with the service. contract that advertises the following information: (i)
service capabilities - stating the conceptual purpose and
3. Classification of component-based and
expected results of the service; (ii) interface -
service-oriented software engineering describing the service signatures of a set of operations
The main concepts and principles of CBSE and that are available to the service requester for
SOSE may look similar at the first sight, but invocation; (iii) behavior - describing the expected
differences exist in mechanisms, approaches and behavior of a service during its execution; and (iv)
implementations. Therefore, we group particular quality - describing important functional and non-
characteristics that have similar concerns to describe functional service quality attributes [12].
the same or related aspects of CBSE and SOSE. The 3.1.3. Interface. Although both CBSE and SOSE are
categories in the comparison framework that we are interface-based in the sense that interfaces are the
going to address are: key concepts and principles, specifications of access points, the separation between
process concerns, technology concerns, quality and service descriptions and service implementation is
composition. more explicit than the separation between component
specification and implementation.
3.1. Key concepts
3.1.4. Assembly. In CBSE, component composition is
A summary of the key concepts in CBSE and SOSE the process of assembling components using
is listed in Table 1. connectors or glue code to form an assembly, a larger
Table 1 Comparison of key concepts in CBSE and SOSE component or an application. The components are
assembled through the component interfaces and the
Concepts CBSE SOSE composition is made out of several component
Module Component Service instances that are connected and interact together.
Specification Component contract Service description In SOSE, the composite services are built by
Interface Component interface Service interface composing service descriptions. The realization of the
service composition is during run time when the service
Assembly Component Service
composition composition providers are discovered and bound.
3.1.1. Module. In CBSE, components are the building 3.2. Key principles
blocks that can be deployed independently and are
A summary of the key principles of implementation
subject to composition by third party [4]. Based on the
in CBSE and SOSE is listed in Table2.
formulation by Clemens Szyperski [15], a software
component is a unit of composition with contractually Table 2 Comparison of key principles of implementation
specified interfaces and explicit context dependencies in CBSE and SOSE
only. It can be both fine-grained providing specific PRINCIPLES CBSE SOSE
functionality and coarse-grained encompassing Coupling Loose and tight Loose coupling
complicated logics. coupling
In SOSE, services are the building blocks that can Self describing Component Service
be reused and offer particular functionalities. They are specification descriptions
generally implemented as coarse-grained discoverable Self contained yes yes
software entities [2], operating on larger data sets, State Stateless/stateful Stateless/stateful
encapsulating business functionality and exposing the Location In some component yes
functionality to any source that requests the transparency models e.g. DCOM
33rd EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA 2007)
0-7695-2977-1/07 $25.00 © 2007
3.2.1. Coupling. CBSE enables both loose coupling and the duration for holding the message information.
and tight coupling. As a component is used within the Otherwise, the services would not be able to timely
scope of a component model, it needs to conform to the correspond to other service requesters. On the other
rules specified by the component model. A component hand, there are circumstances when stateful services are
model often uses one particular interaction style, such necessary so as to maintain states across several
as broadcasting, asynchronous connection and method calls by the same service requester. The service
connection-oriented style. All these interaction styles object creation policy determines whether a stateful
imply some kind of coupling between components, service can be returned.
such as referential coupling and temporal coupling. 3.2.5. Location transparency. In CBSE, some
In contrast to CBSE, SOSE enables only loose component models can provide location transparency,
coupling, with minimized dependencies between e.g. DCOM allows component-based applications to be
service providers and service requesters. The service distributed across memory spaces or physical machines
providers need not to know anything about the service using proxies and stubs.
requesters or any other services. They have great In SOSE, since services have their descriptions and
flexibility in choosing their design and deployment location information stored in the service registry
environment to offer their services. Likewise, the through e.g. UDDI, which is accessible to a variety of
service requesters or calling applications need not to service requesters, services can be invoked by service
know anything about underlying logic of the service requesters from different locations.
implementation and service deployment except the
service descriptions. The service descriptions are the 3.3. Development process concerns
only communication channel between service Three aspects related to development process are
requesters and service providers. Service loose identified for further comparison.
coupling is enabled through the use of service 3.3.1. Building from pre-existing entities
descriptions that allow services to interact within (components or services). The main idea for CBSE is
predefined parameters [5]. to build systems from pre-existing components. This
3.2.2. Self describing. Both CBSE and SOSE share the feature applies in the same way for SOSE in the sense
same self describing characteristic with their own that systems can be built from composing appropriate
specialization. In CBSE, the component specification is pre-existing services to meet certain business
the key to the component’s self describing functionality.
characteristic and specifies the rules that the 3.3.2. Separation of development process of system
components must conform to. and entities (components or services). In CBSE, the
In SOSE, the service description is the key to the development process of component-based systems is
service’s self describing characteristic. The service separated from the development process of
provides its clients with all the relevant information in components. This feature applies in the same way for
the service descriptions, which contain combinations of SOSE in the sense that services can be developed by
syntactic, semantic and behavioral information. various service providers across organizational
3.2.3. Self contained. In CBSE, components can be boundaries and the service requesters need only to
self contained. For example, for CCM, a component is discover and invoke the services.
‘a self-contained unit of software code consisting of its 3.3.3. Development process. In CBSE, engineering a
own data and logic, with well-defined connections or component-based software system is a process of
interfaces exposed for communication. It is designed finding components, evaluating and selecting proper
for repeated use in developing applications; either with components, testing, adapting if necessary and
or without customization’ [22]. integrating the components into the software system,
In SOSE, services are self contained. The services e.g. in the COTS-based development process. In SOSE,
provide the same functionality regardless of the other engineering a service-oriented computing system is a
services, even if any other services may fail for some process of discovering and composing the appropriate
reason. services to satisfy a specification [8]. The process of
3.2.4. Stateless. Both components and services can be service discovering, matching, planning and composing
stateful or stateless. In SOSE, stateless services are is essential. Service-oriented engineering process
used to meet the performance requirements and in focuses more on run-time activities, such as
some circumstances, the stateless property is optimal dynamically adding, discovering and composing
for services’ reusability. As a result, the services should services illustrated in Figure 2.
minimize the amount of state information they manage
33rd EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA 2007)
0-7695-2977-1/07 $25.00 © 2007
Figure 2 Comparison of typical activities during development process in CBSE and SOSE
33rd EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA 2007)
0-7695-2977-1/07 $25.00 © 2007
requesters find the services that match certain criteria, service-oriented architectures may provide more
the service requester will use the service description to chances for the development of reusable components.
make a dynamic binding with the service provider. 3.5.2. Substitutability as life cycle property.
(2) Dynamic discovery and availability Substitutability means that alterative entity (component
Discovery implies the ability that an entity or service) implementation may be used with the
(component or service) is discovered for use. constraints that the system can still meet the
Availability is the ability that an entity (component or requirements on functional level and non-functional
service) is operational or accessible when required for level. According to [15], white box and gray box reuse
use. In CBSE, dynamic discovery and dynamic very likely prevents the component substitutability. In
availability of components are not the major concerns such cases, explicit conventions about the
[3]. implementation information and changes that are made
In SOSE, services exhibit the feature of dynamic in components are required to achieve substitutability
availability, since they can be added or removed from [4].
the service registry at any time. Consequently, services In SOSE, since the service-oriented interaction
are readily available running entities and need to be pattern enables the loose coupling characteristic
dynamically discovered and composed in run time. between a service requester and service providers,
3.5. Quality concerns services can be substituted with new services as long as
the service descriptions fulfill the criteria from service
Quality attributes can be classified into life cycle requesters.
properties and run time properties. Hundreds of quality 3.5.3. Interoperability as runtime property. The
properties exist and we can not analyze all of them. main idea in CBSE is to assemble components together
Therefore, we choose only quality attributes that are of to perform certain functionality. However, each
common or related interest to CBSE and SOSE. component conforms to a certain component model that
3.5.1. Reusability as life cycle property. CBSE specifies different rules from another component
emerged to accelerate reusability of software. model. Therefore, interoperability between
However, there are some constraints in achieving heterogeneous components is still a challenging issue
component reusability, such as component in CBSE. Although in some circumstances,
specification should be explicit, no architectural interoperability can be achieved through implementing
mismatches among composed components, etc. wrapper class or proxies.
Similar to CBSE, services can be reused to construct On the other hand, broad interoperability among
applications. In SOSE, the concern in having similar different vendors’ applications and solutions can be
architecture needs not to be taken into consideration achieved in SOSE through the use of well accepted
because of the technology neutrality, platform standards. For instance, WSDL, UDDI, SOAP, XML
independence and interoperability characteristics of [23]. These descriptions are independent of underlying
SOSE. On the other hand, extra emphasis is put on platform, programming languages and implementation
having explicit service descriptions. details and therefore promote interoperability.
There are several factors that contribute to the
reusability of components and services. Firstly, both 3.6. Composition concerns
components and services are composable. This implies 3.6.1. Heterogeneous vs. homogeneous composition.
that the level of granularity of components and services In CBSE, components can only be assembled
need to be considered when taking reusability into according to the rules specified by a specific
account. The design of operations should be in a component model; there is not much feasibility to
standardized manner and with appropriate level of assemble components that conform to different
granularity [5] so that the components or services can component models.
be reused and composed. Secondly, the separations In SOSE, services which access and combine
between component/service development and information and functions from different sources of
applications also promote component and service service providers can be assembled into composite
reusability. services to perform particular tasks [12]. The service-
Recently, researchers have been active in oriented software engineering principles, such as
investigating the possibilities of enhancing service services are platform independent and loosely coupled,
reusability with service-oriented architectures. One offer the feasibility that services from different sources
study is presented by Zhu in [19], where he proposed of service providers can be used in the same composite
the idea that services are new types of components and service.
33rd EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA 2007)
0-7695-2977-1/07 $25.00 © 2007
3.6.2. Design time/run time composition and Based on the above comparison analysis, the main
composition mechanisms. In CBSE, components can similarities and differences between CBSE and SOSE
be composed at design time and run time. Design time are summarized in Table 3.
composition allows for optimization [4]. A component
Table 3 Summary of similarities and differences of CBSE
detaches its interface from its implementation, and and SOSE
conceals its implementation details, hence permitting
composition without need to know the component CBSE SOSE
implementation details [1]. The mechanisms for
component composition vary from method calls, to Building system from pre- Building systems from
pipes and filters or event mechanism [4]. Furthermore, existing components. pre-existing services.
Process
component models provide also general architecture Separate development process Separate development
and mechanism for component composition. For of components and system. process of services and
example, component models require components to More activities involved in system. More activities
support introspective operations to enable component design time involved in run time
composition at assembly time or run time [17], e.g. the
functionality and properties of the components can be Constrained by component Platform independency.
models. Ranging from white Black box. Only dynamic
Technology
discovered and utilized automatically at assembly time
box, gray box to black box. binding between services.
or run time.
Static and dynamic binding Dynamic discoverability
In SOSE, services are composed at run time. between components.
Several mechanisms exist to compose services, such as Dynamic discoverability is
pipe and filter which can direct the output of one not a major concern
service into the input of another service, orchestration
and choreography. Orchestration utilizes a high-level Interoperability concern Interoperability through
scripting language to control the sequence and flow of between heterogeneous universally accepted
Quality
service execution. It describes the behavior and components. Achieve standards. Achieve
interactions of a specific service provider with other component substitutability service substitutability
involved services. BPEL4WS (Business Process through explicit through service
Execution Language for Web Services) and WSCI specifications. Better descriptions.
predictability Predictability issue
(Web Service Conversation Interface) are examples of
web service orchestration languages. Choreography
Homogenous composition. Heterogeneous
describes the interactions between service providers Design time and run time composition. Services are
Composition
that are collaborated for achieving business composition and design time composed at run time.
functionality. WS-CDL (Web Service Choreography composition allows for Pipe and filter;
Description Language) [24] is one example of optimization. Pipe and filter; orchestration etc.
choreography languages. event mechanism etc. Composite services are
Composition is made out of built by composing
3.6.3. Predictability. In CBSE, the predictability of
several component instances service descriptions
non-functional properties of the composition
components from the properties of components remains
to be a challenging issue. However, compared with 4. Discussions
SOSE, the use of static binding in CBSE may provide Because of the diverse nature of software systems, it
to a certain extent better predictability because of the is unlikely that systems will be developed using a
clarification of interface-based design during assembly purely service or component-based approach [10].
time. Therefore, the ability to combine the strength of CBSE
To some extent, SOSE faces even more challenges and SOSE and use them in a complementary manner
in predictability because of its dynamic discovery and becomes essential. So far, a lot of research has been
dynamic availability behaviors. Some of the examples done in combining the strength of CBSE and SOSE for
of the challenges include how to predict the quality of improved quality attributes of software solutions. Jiang
service when services are discovered and invoked and Willey proposed a multi-tiered architecture [9] that
dynamically during run time, how to predict the quality offers flexible and scalable solutions to the design and
properties when services are composed at run time? integration of large and distributed systems, where the
These are still interesting open research issues. architecture makes use of both services and
components as architectural elements, offering
flexibility and scalability in large distributed systems
33rd EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA 2007)
0-7695-2977-1/07 $25.00 © 2007
and meanwhile remaining the system performance. [7] S. Hashimi, “Service-Oriented Architecture
Wang and Fung [17] proposed an idea of organizing Explained”, http://www.ondotnet.com/, 2003.
enterprise functions as services and implementing them [8] M. N. Huhns, and M. P. Singh, “Service-Oriented
as component-based systems in order to offer flexible, Computing: Key Concepts and Principles”, IEEE Internet
extensible and value-added services. Cervantes and Computing, Service-Oriented Computing Track, 2005.
Hall [3] addressed introducing service-oriented [9] M. Jiang, and A. Willy, “Architecting Systems with
concepts into component model to provide support for Components and Services”, Information Reuse and
late binding and dynamic component availability in Intergration, 2005.
component models. Since CBSE and SOSE keep on [10] G. Kotonya, J. Hutchinson, and B. Bloin, “A Method
for Formulating and Architecting Component and Service-
developing rapidly, exploring their combination
Oriented Systems”,
potentials is still one interesting research topic.
http://scse.comp.lancs.ac.uk/pubs/KotonyaHutchinsonBloin_
5. Summary SOSEBook.pdf, visited 2007.
[11] R. van Ommering, F. van der Linden, and J. Kramer.
In this paper, we have presented a comparison “The koala component model for consumer electronics
framework for component-based and service-oriented software”, In IEEE Computer, pages 78–85. IEEE, March
software engineering and discussed briefly the research 2000
efforts that have been done in combining the strengths [12] M. P. Papazoglou, “Service-Oriented Computing:
of CBSE and SOSE for improved quality attributes. Concepts, Characteristics and Directions”, Proceedings of the
An explicit clarification of the concepts, principles Fourth International Conference on Web Information
and characteristics of CBSE and SOSE is the first Systems Engineering (WISE), 2003.
necessary step before further exploration in efficient [13] M. P. Papazoglou, P. Traverso, S. Dustdar, and F.
utilization and reasonable combination of them in Leymann, “Service-Oriented Computing Research
Roadmap”, 2006.
future applications. Discussions on state of the art
research with respect to how to combine the two [14] Z. Stojanovic, and A. Dahanayake, Service-Oriented
Software System Engineering: Challenges and Practices, Idea
technologies in a complementary way can be helpful
Group, U.S, 2004.
for further investigation of the long term advantages in
[15] C. Szyperski. Component Software – Beyond Object-
introducing service-oriented architecture into
Oriented Programming, Addison-Wesley, 2002.
component-based development, and integrating
[16] W. T. Tsai. “Service-Oriented System Engineering: A
component-based and service-oriented architecture to New Paradigm”, Proceedings of the 2005 IEEE International
offer added value in system development. Workshop on Service-Oriented System Engineering (SOSE),
2005.
6. References
[17] G. Wang, and C. K. Fung, “Architecture Paradigms and
[1] M. Aoyama, “New Age of Software Development: How Their Influences and Impacts on Component-Based Software
Component-Based Software Engineering Changes the Way Systems”, Proceedings of the 37th Hawaii International
of Software Development”, Proceedings of 1st workshop on Conference on Systems Sciences, 2004.
Component Based Software Engineering, 1998. [18] M. Winter, C. Zeidler, C. Stich, “The PECOS Software
[2] A. Brown, S. Johnston, and K. Kelly, “Using Service- Process”, Workshop on Components-based Software
Oriented Architecture and Component-Based Development Development Processes, ICSR 7 2002
to Build Web Service Applications”, A Rational Software [19] H. Zhu, “Building Reusable Components with Service-
White Paper, 2002. Oriented Architectures”, Information Reuse and Integration,
[3] H. Cervantes, and R. S. Hall, “Autonomous Adaptation to 2005.
Dynamic Availability Using a Service-Oriented Component [20] Component-Based Design and Integration Platforms,
Model”, 2004. http://www.artist-embedded.org/, 2002.
[4] I. Crnkovic, and M. Larsson, Building Reliable [21] Arcticus Systems, Rubus component model,
Component-Based Software Systems, Artech House http://www.arcticus-systems.com
Publishers, 2002. [22] OMG. CORBA Components. Report ORBOS/99-02-01.
[5] I. Crnkovic, S. Larsson, and M. Chaudron, “Component- [23] W3C. World-Wide-Web Consortium: XML, SOAP,
Based Development Process and Component Lifecycle”, WSDL, http://www.w3c.org/
Information Technology Interface, 2005. [24] W3C World Wide Web Consortium, Web Services
[6] R. M. Dijkman et al, “The State of the Art in Service- Choreography Working Group, http://www.w3.org
Oriented Computing and Design”, 2003.
33rd EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA 2007)
0-7695-2977-1/07 $25.00 © 2007