An Introduction to SCA & SDO: How to Build Business applications

An Introduction to SCA & SDO: How to
Build Business applications
Jeff Mischkinsky
Director, Oracle Fusion Middleware and Web Services Standards
OSOA Collaboration | 30th May 2007
Introduction to SCA and SDO
Agenda
ƒ
ƒ
ƒ
ƒ
ƒ
SOA -The Business Drivers
The SOA Vision - Model and Characteristics
SCA/SDO - An Overview
SCA - Details and Example
Summary
OSOA Collaboration
SOA - The Business Drivers
OSOA Collaboration | 30th May 2007
Introduction to SCA and SDO
Business Drivers
Flexible business requires flexible IT
Traditional Business*
ƒ Economics: globalization demands greater
flexibility
ƒ Global supply chain integration
ƒ Business processes:
daily changes vs. yearly changes
ƒ Growth through flexibility is at
the top of the CEO agenda
ƒ Reusable assets can cut costs
by up to 20%
ƒ Crucial for flexibility and becoming
an On Demand Business
Today’s World-Class Business*
*Sources: CBDi
OSOA Collaboration
Introduction to SCA and SDO
What We have Today
ƒ Complexity
ƒ Rigid, brittle architectures
ƒ Inability to evolve
OSOA Collaboration
Introduction to SCA and SDO
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
OSOA Collaboration
The SOA Vision:
Model and Characteristics
OSOA Collaboration | 30th May 2007
Introduction to SCA and SDO
Service Oriented Architecture
Characteristics
ƒ
Service model for business functions
¾ Services are coarse-grained and network-facing
ƒ
Characteristics
¾ Flexibility
• Autonomous services are highly reusable
Non predictive patterns of use
¾ Productivity
• High level of abstraction
¾ Comprehension
• Well-understood system architecture and behavior
OSOA Collaboration
Introduction to SCA and SDO
The SOA Programming Model (1)
ƒ SOA Programming Model derives 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
OSOA Collaboration
Introduction to SCA and SDO
The SOA Programming Model (2)
ƒ
Core Elements:
¾ Service Assembly
technology- and language- independent representation of composition of
services
¾ Service Components
technology- and language-independent representation of composable service
implementation
¾ Service Data Objects
technology- and language-Independent representation of service data entity
OSOA Collaboration
SCA/SDO:
An Overview
OSOA Collaboration | 30th May 2007
Introduction to SCA and SDO
Service Component Architecture (SCA): A
Simplified Programming/Deployment
Model for SOA
ƒ A model for building components, assembling them into
applications, and deploying them to various runtime
environments
¾ Components can be 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
OSOA Collaboration
Introduction to SCA and SDO
What is SCA?
ƒ executable model for assembly of service components into
business solutions
ƒ simplified component programming model for implementation of
services:
• Business services implemented in any of a variety of
technologies
e.g. EJBs, Java POJOs, BPEL process, COBOL,
C++, PHP …
OSOA Collaboration
Introduction to SCA and SDO
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
OSOA Collaboration
Introduction to SCA and SDO
Key benefits of SCA
ƒ Loose Coupling: Components integrate without needing to know how other components 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 / different frameworks
¾ multiple communication mechanisms
ƒ Declarative
application of infrastructure services
¾ WSDL is the contract language
ƒ Simplification
of development experience for all developers, integrators and application
deployers
OSOA Collaboration
Introduction to SCA and SDO
SCA – High Level View
ƒ Unified declarative model describing service assemblies
¾ dependency resolution and configuration
¾ declarative policies for infrastructure services
•
Security, Transactions, Reliable messaging
ƒ Business-level model for implementing services
¾ service components with service interfaces
¾ no technical APIs like JDBCTM, JCATM, JMSTM, …
ƒ Binding model for multiple access methods and infrastructure
services
¾ WSDL, SOAP over HTTP, JMSTM/messaging, JavaTM RMI/IIOP…
ƒ Interaction Model for connected and disconnected services
¾ Synchronous, Asynchronous and Conversational services relationships
OSOA Collaboration
Introduction to SCA and SDO
Service Data Objects (SDO): Simplified
Data Handling for SOA
ƒ A simplified programming model for access to business
data
¾ Uniform model for data formats
¾ Uniform model for data access
ƒ Independent of form of data (source and target)
¾ Data stored in wide variety of formats
¾ RDBMS
¾ XML formats
¾ Unstructured
ƒ Interaction style designed for SOA
¾ Disconnected, optimistic-update policy
• Read, manipulate, update
OSOA Collaboration
SCA:
Details and Example
OSOA Collaboration | 30th May 2007
Introduction to SCA and SDO
SCA Elements
ƒ Assembly Model
¾ how to define structure of composite applications
ƒ Client & Implementation specifications
¾ how to write business services in particular languages
¾ Java, C++, BPEL, PHP….
ƒ Binding specifications
¾ how to use access methods
¾ Web services, JMS, RMI-IIOP, REST…
ƒ Policy Framework
¾ how to add infrastructure services to solutions
¾ Security, Transactions, Reliable messaging…
OSOA Collaboration
Introduction to SCA and SDO
Basic Assembly Elements
ƒ Component
¾ configured instance of implementation
¾ provides and consumes services
¾ sets implementation properties
ƒ Composite
¾
¾
¾
¾
combines collections of components
wires references to services
selects bindings, endpoints
applies policies
OSOA Collaboration
Introduction to SCA and SDO
SCA Bindings
ƒ Specific to particular:
¾ Access Method / Protocol / Transport
¾ Serialization
¾ Framework
ƒ Apply to services and references
ƒ Typically added during deployment
ƒ Currently defined bindings:
¾ Web services binding
¾ JMS binding
¾ JCA binding
¾ EJB (RMI-IIOP) binding
OSOA Collaboration
Introduction to SCA and SDO
SCA Client and Implementation
Specifications
ƒ Specify how service components and service clients are built
ƒ Specific to a particular language or framework or language- or
framework-specific APIs
ƒ Extensible
ƒ Currently defined C&I specifications:
¾ BPEL
¾ Java
¾ Spring Framework
¾ EJB
¾ JAX-WS
¾ C++
¾ (PHP)
OSOA Collaboration
Introduction to SCA and SDO
SCA 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
OSOA Collaboration
Introduction to SCA and SDO
SCA Policy Framework
ƒ
Framework consists of:
¾ SCA policy intent
• Each represent a single abstract QoS intent
• E.g. reliable messaging
¾ SCA policy sets
• Represent a collection of concrete policies to realize an abstract
QoS intent
¾ WS-Policy
• A syntax for concrete policies in policy sets
• others possible…
OSOA Collaboration
Introduction to SCA and SDO
SCA Composite
Service
- Java interface
- WSDL PortType
Reference
- Java interface
- WSDL PortType
Properties
Composite A
Property
setting
Component
A
Service
Promote
Binding
Web Service
SCA
JCA
JMS
SLSB
…
OSOA Collaboration
Component
B
Wire
Implementation
- Java
- BPEL
- C++
- PHP
- Composite
…
Reference
Promote
Binding
Web Service
SCA
JCA
JMS
SLSB
…
Introduction to SCA and SDO
Example Composite
bigbank.accountcomposite
Reference
StockQuote
Service
Service
AccountService
AccountService
Component
AccountData
Service
Component
OSOA Collaboration
Introduction to SCA and SDO
Example SCA Assembly
AccountsComposite
Payment
Service
Order
Processing
Service
OrderProcessing
Component
Payments
Component
Accounts
Ledger
Component
EventLog
Component
External
Warehouse
Reference
WarehouseComposite
Warehouse
Service
Warehouse
Broker
Component
Warehouse
Component
EventLog
Reference
OSOA Collaboration
External
Banking
Reference
Summary
OSOA Collaboration | 30th May 2007
Introduction to SCA and SDO
Summary
ƒ
Fundamental Service Oriented Architecture value prop
¾ less expensive integration, more flexibility
ƒ SCA models systems built using a SOA
¾ SDO provides the ideal data manipulation layer
ƒ SCA is key enabler for SOA
¾ Maybe “THE” key enabler
OSOA Collaboration
Thank you!
Questions?
OSOA Collaboration | 30th May 2007