What is Service Component Architecture

Service Component Architecture - Solid Basis for SOA Principles?

  • Service Component Architecture -

    Solid basis for SOA principles?

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 1

    Service Component Architecture

    Solid basis for SOA principles?

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 2

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 3

    Service design principles

    1. Loose coupling

    2. Encapsulation

    3. Autonomy

    4. Orthogonality

    5. Idempotency

    6. Cohesion

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 4

    Service Component Architecture?

    Specifications that describe a model for creating SOA applications

    Declarative metadata for the configuration

    Abstractions help to take various aspects into account when composing systems

    Support of assembly, deployment and runtime

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 5

    OpenSOA

    OSOA Collaboration founded in 2005

    Consortium of manufacturers and companies

    The aim is to create specifications to describe the creation of SOA applications

    Draft 0.9 in autumn 2005

    Version 1.0 in winter 2007

    Takeover by OASIS http://www.oasis-open.org/committees/tc_cat.php?cat=soa

    Version 1.1 final release Winter 2010/11 targets Eventing

  • Service Component Architecture

    Zhlke 2011

    OpenSOA partner

    November 23, 2010

    Alexander Hauswald

    Slide 6

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 7

    Component models already exist

    COM / DCOM

    Java EE

    .Net Remoting / WCF

    CORBA

  • Service Component Architecture

    Zhlke 2011

    Why another one?

    November 23, 2010

    Alexander Hauswald

    Slide 8

    Break between modeling, architecture and implementation

    Service orientation object orientation

    Complexity

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 9

    SCA design principles

    Regardless of the programming language as well as the underlying implementation

    Independent of the container technology

    Loose coupling between the components

    Policies describe security, transaction and reliability

    Recursive composition

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 10

    Specification content

    Structure assembly model specification

    Implementation of a programming language Component Implementation Specification E.g. Java, C ++

    Remoting Binding Specification E.g. Web services, JMS, RMI-IIOP, EJB

    Infrastructure Policy Framework Specification E.g. Security, transactions, reliability

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 11

    Use in products

    Commercial vendor Oracle SOA Suite 11g IBM Websphere Application Server Tibco ActiveMatrix Hydra Suite

    Open source provider Apache Tuscany Fabric3

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 12

    SOA standards for Oracle

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 13

    Keywords in SCA

    service

    Reference

    Wire

    interface

    Binding

    Implementation

    Component

    Composite

    ComponentType

  • Service Component Architecture

    Zhlke 2011

    essence

    service

    Component

    Composite

    The Domain

    November 23, 2010

    Alexander Hauswald

    Slide 14

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 15

    SCA assembly domain

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 16

    Service functionality of an implementation that can be used externally

    Service concept

    service

    Reference dependence on an external service

    Reference

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 17

    Component concept

    Component configured instance of an implementation in a composite

    Provides service

    Consumes services

    Configures references by wiring services

    Component

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 18

    Component concept

    Component Implementation A configurable piece of software that provides a specific business functionality

    Implementation Java, Spring, C ++, BPEL,

    Provides business functions as a service

    Can use other services through references

    services and references are typed with interfaces

    Scope Runtime manages state and message routing

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 19

    Component concept

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 20

    Composite concept

    Composite

    A collection of components that are jointly developed and deployed Publicly consumable services Service implementations are components Required services are references Hat properties Can be used as an implementation of other components

    Composite

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 21

    Example composite

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 22

    Example composite.xml

    ...

    ...

    ...

    ...

    ...

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 23

    Recursive composition

    Composites and components are similar

    Configured references, services, properties

    A composite can be used by other composites as a component implementation

    A component can be implemented through a simple implementation or a composite

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 24

    Bindings

    Apply to services and references

    Specific to Access Method / Protocol / Transport Serialization Framework

    Are added during deployment, but must be compatible with the underlying implementation

    A number of bindings are predefined, but only a few are required by the manufacturers

    The binding.sca element allows extensibility and runtime defaults

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 25

    Composite Overview

  • Service Component Architecture

    Zhlke 2011

    The Domain

    November 23, 2010

    Alexander Hauswald

    Slide 26

  • Service Component Architecture

    Zhlke 2011

    The big picture

    November 23, 2010

    Alexander Hauswald

    Slide 27

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 28

    Client and Implementation Specifications

    Specifies how service components and service clients are built

    Expandable specifically for a language, framework or API

    There are various C&I specifications (but not all of them have to be implemented by the manufacturer): Java, BPEL, Spring Framework, C ++

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 29

    Java client and implementation

    Implementation type for POJO

    Uses

    ...

    Uses the common annotations and APIs

  • Service Component Architecture

    Zhlke 2011

    Interface definition

    Reference definition

    Property

    Java Component Implementation

    November 23, 2010

    Alexander Hauswald

    Slide 30

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 31

    SCA in Java annotations

    Common across all Java-related specifications

    Implementation annotations

    @Service, @Reference, @Property

    @Scope, @Init, @Destroy, @EagerInit

    @ConversationID, @ConversationAttributes

    @ComponentName

    @Constructor

    Interface annotations

    @AllowsPassByReference, @Callback

    @Remotable, @Conversational, @Oneway

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 32

    JDeveloper Composite Editor

  • Service Component Architecture

    Zhlke 2011

    November 23, 2010

    Alexander Hauswald

    Slide 33

    Summary

    SCA is being (further) developed by a consortium of companies and manufacturers

    SCA specifications define a uniform platform for the Er