Constructing Business Solutions using Service Component Architecture

About This Presentation
Title:

Constructing Business Solutions using Service Component Architecture

Description:

Order. Processing. Service. OrderProcessing. Component. Shipping. Reference ... Productivity: easier to integrate components to form composite application ... – PowerPoint PPT presentation

Number of Views:46
Avg rating:3.0/5.0
Slides: 40
Provided by: patrick5

less

Transcript and Presenter's Notes

Title: Constructing Business Solutions using Service Component Architecture


1
Constructing Business Solutions using Service
Component Architecture
www.oasis-open.org
Mike Edwards IBM Co-chair OASIS SCA Assembly TC
2
Agenda
  • Some business context
  • SCA and SOA
  • SCA scenarios
  • SCA in action
  • SCA specifications
  • SCA standardization in OASIS

3
What We have Today
  • Complexity
  • Rigid, brittle architectures
  • Inability to evolve

4
What we want to get to
  • Well-defined interfaces with business-level
    semantics
  • Standardized communication protocols
  • Flexible recombination of services to enhance
    software flexibility

Service-Oriented Architecture is one of the key
technologies to enable flexibility and reduce
complexity
5
The SOA Programming Model
  • SOA Programming Model derives its technical
    strategy and vision from the basic concept of a
    service
  • A service is an abstraction that encapsulates a
    software function.
  • Developers build services, use services and
    develop solutions that aggregate services.
  • Composition of services into integrated
    solutions is a key activity

  • Core Elements
  • Service Assembly
  • technology- and language- independent
    representation of composition of services into
    business solutions
  • Service Components
  • technology- and language-independent
    representation of service which can be composed
    with other services
  • Service Data Objects
  • technology- and language-Independent
    representation of data entity that can be passed
    between services

6
Agenda
  • Some business context
  • SCA and SOA
  • SCA scenarios
  • SCA in action
  • SCA specifications
  • SCA standardization in OASIS

7
Service Component Architecture (SCA) Simplified
Programming Model for SOA
  • model for
  • building service components
  • assembling components into applications
  • deploying to (distributed) runtime environments
  • Service components built from new or existing
    code using SOA principles
  • vendor-neutral supported across the industry
  • language-neutral components written using any
    language
  • technology-neutral use any communication
    protocols and infrastructure to link components

8
SCA assembly
RMI/IIOP
AccountsComposite
External Banking Reference
Payments Component

Payment Service

OrderProcessing Component


Order Processing Service

Java EE

Accounts Ledger Component

BPEL
SOAP/HTTP
Multi-level composition
WarehouseComposite
External Warehouse Reference
Warehouse Broker Component

Mixed - technologies - app locations
Warehouse Component
Warehouse Service





JMS
Shipping Reference
C
9
Key benefits of SCA
  • Loose Coupling components integrate without need
    to know how others are implemented
  • Flexibility components can easily be replaced by
    other components
  • Services can be easily invoked either
    synchronously or asynchronously
  • Composition of solutions clearly described
  • Productivity easier to integrate components to
    form composite application
  • Heterogeneity multiple implementation languages,
    communication mechanisms
  • Declarative application of infrastructure
    services
  • Simplification for all developers, integrators
    and application deployers

10
SCA What is it NOT
  • Does not model individual workflows
  • use BPEL or other workflow languages
  • Is not Web services
  • SCA can use / may use Web services, but can also
    build solutions with no Web services content
  • Is not tied to a specific runtime environment
  • distributed, hetergeneous, large, small
  • Does not force use of specific programming
    languages and technologies
  • aims to encompass many languages, technologies

11
Agenda
  • Some business context
  • SCA and SOA
  • SCA scenarios
  • SCA in action
  • SCA specifications
  • SCA standardization in OASIS

12
Bottom-up Composition
  • Select a set of existing component
    implementations for building the new composite
  • Configure the component properties

Composite
Draw internal wires
properties
properties
Wrap the components in a composite and configure
external services/references
Hand off the composite to Deployer
services
references
13
Top-down Composition
Properties
Composite
Ref
Start with gathering requirements for the
top-level composite
Service
Ref
Define the services/references and properties for
the composite
Break down the composite into individual
components and wires between them
Recursively break down each component
Hand off the individual component contracts to
developers for implementation
14
Heterogeneous Assembly
PHP
BPEL
Java
C
Legacy
Components in the same composite share a common
context for many aspects such as installation,
deployment, security settings, logging behavior,
etc.
15
Implementation Reuse By Configuration
Select an existing component implementation
Properties
Configure its behavior (via setting props, refs)
to match the current requirements E.g. Configure
multiple instances of product pricing component,
each with different currency, tax rate, discount
charts, etc.
Services


References
Component
Deploy the component implementation - Multiple
instances of the same implementation may be
running simultaneously
Implementation
- Java
- BPEL
- Composite
16
Deployment Flexibility
Deployer chooses and configures communication
mechanisms for services/references without having
to modify the component implementation
WS Clients
SOAP/HTTP WS Binding
Properties
References
Services
ERP Service
JMS Clients
JMS Binding
JCA Binding
17
Agenda
  • Some business context
  • SCA and SOA
  • SCA scenarios
  • SCA in action
  • SCA specifications
  • SCA standardization in OASIS

18
Component
services
properties
Component








references
Implementation - Java - BPEL -
Composite
  • Configured instance of implementation within a
    Composite
  • more than one component can use same
    implementation
  • Provides and consumes services
  • Sets implementation properties
  • Sets service references by wiring them to
    services

19
Simple Example
bigbank.accountcomposite
Reference
StockQuote
Service
AccountService
Service
Service
Component
AccountService
AccountService
AccountData
AccountData
Service
Service
Component
Component
20
ltcomposite xmlns"http//www.osoa.org/xmlns/sca/1.
0" name"bigbank.accountcomposite"
gt ltcompositegt
ltservice name"AccountService"
promote"AccountServiceComponent"gt
ltinterface.java interface"services.account.Accoun
tService"/gt ltbinding.ws
port"http//www.example.org/AccountService
wsdl.endpoint(AccountService/AccountServiceSO
AP)"/gt lt/servicegt
ltcomponent name"AccountServiceComponent"gt
ltimplementation.java class"services.account.
AccountServiceImpl"/gt ltreference
name"StockQuoteService"/gt ltreference
name"AccountDataService"
target"AccountDataServiceComponent/AccountDataSer
vice"/gt ltproperty name"currency"gtEUROlt/pr
opertygt lt/componentgt
bigbank.accountcomposite
StockQuote
Reference
Reference
StockQuote
StockQuote
Service
Service
ltcomponent name"AccountDataServiceComponent"gt
ltimplementation.bpel processQName"/gt
ltservice name"AccountDataService"gt
ltinterface.java interface"services.accountdat
a.AccountDataService"/gt lt/servicegt
lt/componentgt
AccountService
Service
Component
AccountService
AccountData
Service
Component
ltreference nameStockQuoteService"
promote"AccountServiceComponent/StockQuoteService
"gt ltinterface.java interface"services.sto
ckquote.StockQuoteService"/gt ltbinding.ws
port"http//example.org/StockQuoteService
wsdl.endpoint(StockQuoteService/StockQuoteServ
iceSOAP)"/gt lt/referencegt
21
Java Implementation Example Service Interface
Interface is callable remotely eg. as a Web
service
package org.example.services.account _at_Remotable
public interface AccountService public
AccountReport getAccountReport(String
customerID)
22
Java Implementation Example (1)
package org.example.services.account import
org.osoa.sca.annotations. _at_Service(interfaces
AccountService.class) public class
AccountServiceImpl implements AccountService
private String currency "USD" private
AccountDataService accountDataService
private StockQuoteService stockQuoteService
public AccountServiceImpl(
_at_Property("currency") String currency,
_at_Reference("accountDataService")
AccountDataService dataService,
_at_Reference("stockQuoteService") StockQuoteService
stockService) this.currency
currency this.accountDataService
dataService this.stockQuoteService
stockService
Annotation for the service offered by this class
Constructor with annotations for injected
property and references
23
Java Implementation Example (2)
public AccountReport
getAccountReport(int customerID)
throws AccountDataUnavailableException
AccountReport accountReport
accountDataService.getAccountReport(customerID)
ListltStockgt stocks
accountReport.getStocks()
ListltStockValuesgt stockValues
stockQuoteService.getValues( stocks, currency
) accountReport.setStockValues(
stockValues ) return
accountReport // end class
Get the basic account report using the account
data service
Obtain up to date stock values using the stock
quote service
Update the account report with the latest stock
values
24
Features of SCA Composites
  • Distributed
  • each component can exist on a different
    system/process in a network
  • Heterogeneous
  • assemblies can contain components of mixed
    implementation types
  • Recursive or Nested
  • component in a composite can itself be
    implemented as a composite
  • Model existing applications/systems
  • either as components or as composites
  • Declarative application of infrastructure
    services
  • keep APIs out of the business logic
  • philosophy for component implementation

25
SCA Separation of Concerns
  • SCA Components Composites
  • define business logic
  • describe structure of business solution
  • Components and composition separated from
    infrastructure
  • Communication mechanisms SCA Bindings
  • Infrastructure facilities SCA Policy

26
Policies and Infrastructure Capabilities
  • Infrastructure has many configurable capabilities
  • Security Authentication and Authorization
  • Security Privacy, Encryption, Non-Repudiation
  • Transactions, Reliable messaging, etc.
  • Complex sets of configurations across multiple
    domains of concern
  • SCA abstracts out complexity with a declarative
    model
  • no implementation code impact
  • simplify usage via declarative policy intents
  • simple to apply, modify
  • complex details held in PolicySets

27
Attaching Intents, mapping to PolicySets
Composite
Binding
Web Services JCA JMS
Component
service
reference
ltPolicySetgt
intents
_at_providesconfidentiality,integrity,exactlyOnce

confidentiality
locate
Intents
Intents
integrity
Interaction Policy
Interaction Policy
Intents
exactlyOnce
_at_BindingsWebServices
Implementation Policy
Policies
  • Intents attach to SCA elements
  • PolicySets declare what QoS intents they provide
  • and which Bindings they are for
  • Intents index into a PolicySet for each Binding

WS-Policy
28
Associating Policies with SCA Components
  • Intents and/or policySets can be associated with
    any SCA component
  • At deployment time intents map to Policies
    contained in policySets
  • Examples attaching intents

Confidentiality applied to any use of the service
  • ltservice name"AccountService promoteAccountSer
    viceComponent
  • requires"scaconfidentiality"gt
  • ltinterface.java interface"services.account.Acc
    ountService"/gt
  • ltbinding.ws port"http//www.bigbank.com/Accoun
    tService
  • wsdl.endpoint(AccountService/AccountServiceS
    OAP)"/gt
  • lt/servicegt
  • ltreference name"StockQuoteService
  • promoteAccountServiceComponent/
    stockQuoteServicegt
  • ltinterface.java interface"services.stockquote.
    StockQuoteService"/gt
  • ltbinding.ws port"http//www.quickstockquote.co
    m/StockQuoteService
  • wsdl.endpoint(StockQuoteService/StockQuoteSe
    rviceSOAP)
  • requiresscaconfidentiality/gt
  • lt/referencegt

Confidentiality applied to Web service binding
29
Abstract policy declaration
Developer
Deployer
SCA Assembly
SCA Assembly
2
1
Policy Administrator
3
4
5
Repository
0
SCA Runtime
SCA policySets
Registry
0. Policy Administrator authors SCA policySets
with concrete policies 1. Developer specifies
intents on SCA assembly 2. Developer hands over
SCA assembly to Deployer 3. Deployer configures
SCA assembly by assigning SCA policySets (could
be automated) 4. Deployer deploys configured SCA
Assembly to SCA Runtime 5. Deployer updates
Registry
30
(No Transcript)
31
Agenda
  • Some business context
  • SCA and SOA
  • SCA scenarios
  • SCA in action
  • SCA specifications
  • SCA standardization in OASIS

32
SCA Technology
How do I define, configure and assemble
components to create composites? ? SCA Assembly
Spec
How do I define, use and administer policies for
non-functional aspects (QoS, etc)? ? SCA Policy
Framework Spec
Composite
SOAP/ HTTP
Component
JMS
JCA
How do I configure SCA services/references to use
SOAP/HTTP or JMS or JCA, ? SCA WS Binding Spec,

How do I develop SCA components in BPEL? Or in
Java? Or C, PHP, ? SCA xxx Client Impl Spec
33
The SCA Specifications
Assembly
Implementation Languages
Policy Framework
Bindings
Java
JEE
Security
Web services
Spring
BPEL
RM
JMS
C
Transactions
JCA
34
Agenda
  • Some business context
  • SCA and SOA
  • SCA scenarios
  • SCA in action
  • SCA specifications
  • SCA standardization in OASIS

35
Time Line Summary
Other Standards Bodies
1Q07
2007
2Q07
2Q06
4Q04
3Q05
Further complementary incubation
Finalization of further SCA Specs
SCA V0.95
SCA V1.0
SCA V0.9
SDO V1
SDO V2.01
SDO V2
SDO V2.1
Nov 2005
July 2006
Press Announcement of Project Launch
New Partners Announced
March 2007
SDO TC
Specs 1.0 Submission for Standardization
SCA TCs
System Vendors
Early Adopters
Adoption
ISVs Customer Value
36
Standardization
  • OASIS guides standardization of SCA SDO
    Specifications in the OpenCSA Member Section
  • www.oasis-opencsa.org
  • SCA SDO specifications originated in the Open
    SOA collaboration
  • www.osoa.org
  • Member Section Structure
  • 6 SCA Technical Committees (TCs) to address one
    or more Specifications
  • 1 SDO Technical Committee
  • SDO V2.1 for Java will be completed in the JCP as
    JSR235

37
Possible Future work
  • C language specification
  • COBOL language specification
  • REST binding(s)
  • JSON, ATOM,

38
Can I use SCA today?
  • Open source projects
  • Apache Tuscany
  • http//cwiki.apache.org/TUSCANY/
  • Fabric3
  • http//fabric3.codehaus.org/
  • Eclipse SOA Tools Project
  • http//www.eclipse.org/stp/
  • Commercial products
  • http//www.osoa.org/display/Main/ImplementationEx
    amplesandTools

39
Summary
  • SCA
  • how to build composite service applications
  • spans implementation communication technologies
  • Leverages existing services standards
Write a Comment
User Comments (0)