Difference between SOA and CBSE in component or service identification phase RRS feed

  • Question

  • Hello friends
    I'm researching about service identification and specification in SOA .
    What is the difference between SOA and CBSE?What's different between service and component?I know component contains some services but for identification of them the path is the same.
    I don't know ,can I say my research is about Service Identification in SOA and then refer to researches about CBSE .Then someone might ask me what is difference between SOA and component based software engineering?
    Sunday, November 8, 2009 9:15 AM

All replies

  • Greetings,

    CBSE is a process that aims to design and construct software systems using reusable software components.CBSE emerged from the failure of object-oriented development to support reuse effectively.Components may constructed with the explicit goal to allow them to be generalized and reused.

    What is a Component?

    • A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only.
    • A software component can be deployed independently and is subject to composition by third party.

    Component Characteristics
    • Standardised – Following a standard component model
    • Independent – Usable without Adapators
    • Composable – External interactions use public interface
    • Deployable – Stand-alone entity
    • Documented – Full Documentation

    Component re usability should strive to

    • reflect stable domain abstractions
    • hide state representations
    • be independent (low coupling)
    • propagate exceptions via the component interface

    Component-Based Software Development includes

    • Analysis
    • Architectural design
    • component qualification
    • component adaptation
    • component decomposition
    • Component engineering
    • Testing
    • Iterative component update

    Advantages of CBSE

    • Management of Complexity
    • Reduce Development Time
    • Increased Productivity
    • Improved Quality

    Disadvantages of CBSE

    • Development of Components
    • Lack of Components
    • Component Maintenance Costs
    • Reliability and Sensitivity to changes
    • Unsatisfied Requirements
    • Trust

    Difference between CBSE and  Traditional Software Engineering.

    • CBSE views the system as a set of  off-the-shelf components integrated within an appropriate architecture.
    • Software Engineering seeks to create a system from scratch.
    • CBSE Life Cycle is shorter.
    • CBSE is less expensive

    A computer running several software components is often called an application server. Using this combination of application servers and software components is usually called distributed computing. The usual real-world application of this is in financial applications or business software.

    With regards to system-wide co-ordination, components communicate with each other via interfaces. When a component offers services to the rest of the system, it adopts a provided interface which specifies the services that can be utilised by other components and how. This interface can be seen as a signature of the component - the client does not need to know about the inner workings of the component (implementation) in order to make use of it.

    When a component needs to use another component in order to function, it adopts a used interface which specifies the services that it needs.

    Very Important Points in CBSE

    • A component is a software unit whose functionality and dependencies are completely defined by its interfaces.
    • A component model defines a set of standards that component providers and composers should follow.
    • CBSE is a reuse-based approach to define and implement loosely coupled components into systems.
    • During the CBSE process, the processes of requirements engineering and system design are interleaved.
    • Truly applying CBSE is not easy. One has to think about potential risks and carefully to plan ahead

    Take Care

    Helping People To Solve Technical Problems
    Sunday, November 8, 2009 4:28 PM
  • Greetings,

    A service-oriented architecture is essentially a collection of services. These services communicate with each other. The communication can involve either simple data passing or it could involve two or more services coordinating some activity. Some means of connecting services to each other is needed.

    Principles Of SOA

    The following guiding principles define the ground rules for development, maintenance, and usage of the SOA

    • reuse, granularity, modularity, composability, componentization and interoperability.
    • standards-compliance (both common and industry-specific).
    • services identification and categorization, provisioning and delivery, and monitoring and tracking.

    Service-Oriented Architecture: Business Benefits

    • Becoming more agile
    • Driving cost reductions
    • Lowering maintenance costs
    • Simpler systems
    • Lowering integration costs
    SOA Disadvantages

    Service Oriented Architecture Disadvantages & Applicability Service Oriented Architecture may not always be the best architectural choice because optimal utilization of SOA requires additional development and design attempts as well as infrastructure which translates into costs escalation.

    Why SOA?

    • Reduce operational, maintenance & management costs due to defects, complex and lengthy upgrade cycles and the fragility of hard-coded dependencies
    • Provide business flexibility to transform the value chain, adjust business process to changing environments and adjust resources to fluctuating demands.
    • Support legacy applications with important business value without constraining future development or enhancements

    Service Descriptions: Roles and Models

    Business Service Model
    • Encapsulate operations related to this business processes

    Utility Service Model
    • Encapsulates operations related to infrastructure, basic system engineering functions

    Controller Service Model
    • Controls multiple services for a high level, more complex, larger scope task

    Service Descriptions
    • WSDL
    • Describes a service
    • What operations does it publish
    • Programmatic interface specification level of description
    • Supports export of common data types as well

    Difference between WebService and SOA

    • WebServices are self describing services that will perform well defined tasks and can be accessed through the web.
    • Service Oriented Architecture (SOA) is (roughly) an architecture paradigm that focuses on building systems through the use of different WebServices, integrating them together to make up the whole system.

    Take Care

    Helping People To Solve Technical Problems
    Sunday, November 8, 2009 5:13 PM