Service Oriented Architecture Lecture 10: Service Component Architecture (SCA)

advertisement
Service Oriented
Architecture
Lecture 10: Service Component
Architecture (SCA)
Sources:
www.osoa.org
“SOA for the Business Developer” by Margolis
“Introducing SCA” by Chappell
95-843: Service Oriented Architecture
Master of Information System
Management
1
Composite Services
Architecture (CSA)
• In March 2007, Composite Services Architecture (CSA)
is passed on to OASIS by the Open Service Oriented
Architecture collaboration (www.OSOA.org).
• CSA is supported by BEA, IBM, Oracle, Tibco, Red Hat
and others.
• CSA Consists of SCA (Service Component Architecture)
and SDO (Service Data Objects).
• Implemented by IBM WebSphere, Oracle, Red Hat,
Tibco, and the open source Apache Tuscany.
• Describes how to compose and deploy applications
supporting SOA.
• Decouple business logic from details associated with the
call on that logic.
• Introduces The Service Component Definition Language
(“skiddle”) to describe composites.
95-843: Service Oriented Architecture
Master of Information System
Management
2
SCA Specifications (1)
• Assembly model defining composites,
components, references and wires
• Policy Framework allowing analysts to
define constraints, capabilities and
qualities of service expectations
• Bindings allowing heterogeneous
transports (SOAP, JMS, IIOP,etc.)
• Java annotations, API’s and component
implementation (@Remotable)
• C++, BPEL, PHP, EJB and Spring for
SCA
95-843: Service Oriented Architecture
Master of Information System
Management
3
SCA Specifications (2)
• The Assembly model defines
composites, components, references
and wires.
The assembly model defines how components are combined
into composites and are packaged and deployed as services.
We specify such details as encryption, authentication and
queuing outside of the business service.
95-843: Service Oriented Architecture
Master of Information System
Management
4
SCA Specifications (3)
• The Policy Framework allows analysts to
define constraints, capabilities and
qualities of service expectations.
WSDL does not support the description of policies.
The SCA Policy Framework uses WS-Policy and
WS-PolicyFramework to describe policies for service
users.
From www.osoa.org:
Business value: The ability to define policies outside the
services themselves lets administrators set and change
the policies without changing code. It also means administrators
know their policies are implemented globally.
95-843: Service Oriented Architecture
Master of Information System
Management
5
SCA Specifications (4)
• Bindings allow heterogeneous
transports (SOAP, JMS, IIOP,etc.) to be
used.
From www.osoa.org:
Bindings specify the mechanisms to access particular kinds
of components. Applications built with SCA can use Web
services, JMS, JCA and EJBs. (More bindings are on the way
from osoa.org.) As you would expect, the bindings can be
defined outside the code itself.
Business value: The bindings provided in SCA allow
developers to use a wide variety of services without
knowing the details of how those services are accessed.
With the bindings external to the code, the bindings can be
changed without changing the code.
95-843: Service Oriented Architecture
Master of Information System
Management
6
SCA Components (1)
properties
services
Implemented in BPEL, Java,
C++, etc.
This may also be a composite.
95-843: Service Oriented Architecture
Master of Information System
Management
references
<component>
<implementation>
<service>
<binding>…
<property>
<reference>
<binding>…
</component>
7
SCA Components (2)
properties
services
Implemented in BPEL, Java,
C++, etc.
This may also be a composite.
<component>
<implementation>
<service>
<property>
<reference>
</component>
references
has a name and list of policy intents
has a name and an implementation type
has an interface and a binding
names and values to be passed in
includes a binding
95-843: Service Oriented Architecture
Master of Information System
Management
8
SCA Components (3)
Property values passed in at runtime.
services
Operations
available to
clients.
Business logic
Implementation
Other
services
this client
depends
on.
references
Dependency injection: The SCA runtime performs a lookup for the
reference. The business logic need not be concerned with how the
other service is accessed.
Nor is the business logic developer concerned with how this component
is accessed. That detail is specified as a binding - outside of the business
logic.
95-843: Service Oriented Architecture
Master of Information System
Management
9
SCA Components (4)
<composite>
A component is the atom of an SCA
application. It lives within a composite.
<service>
<property>
A component is a configured
<reference>
implementation.
<wire>
<component>
SCA is language agnostic.
<implementation>
<service>
SCDL defines how the component
<property>
interacts with the outside world.
<reference>
</component>
A component might talk to other
components within its own domain or
<more components > outside of its own domain.
:
</composite>
An SCA runtime knows what to do with
this.
95-843: Service Oriented Architecture
10
Master of Information System
Management
SCA Components Quiz (1)
<component name=“Component1”>
<implementation.java class=“services.examples.Calc”>
<service name=“AS”>
<binding.ws uri=http://www.myserve.com/service/>
</service>
<property name=“initValue”>0</property>
<reference name=“MonitorService”>
<binding.ws uri=http://www.etc.com/service/>
</reference>
</component>
Quiz: What can we say about the component
being defined?
95-843: Service Oriented Architecture
Master of Information System
Management
11
SCA Components Quiz (2)
<component name=“Component2”>
<implementation.bpel process=“CalcProcess”>
<service name=“AS”>
<binding.ws uri=http://www.myserve.com/service/>
</service>
<property name=“initValue”>0</property>
<reference name=“MonitorService”>
<binding.ws uri=http://www.etc.com/service/>
</reference>
</component>
And this one?
Other bindings include binding.jms and binding.ejb.
95-843: Service Oriented Architecture
Master of Information System
Management
12
SCA Composites (1)
properties
services
wire
wire
references
95-843: Service Oriented Architecture
Master of Information System
Management
13
SCA Composites (2)
Components
properties
services
wire
wire
references
95-843: Service Oriented Architecture
Master of Information System
Management
14
SCA Composites (3)
Perhaps implemented
in BPEL.
properties
Perhaps implemented
in Java.
services
wire
wire
references
95-843: Service Oriented Architecture
Master of Information System
Management
15
SCA Composites (4)
How this communication
is done may be left up to the
SCA runtime.
properties
services
wire
wire
references
95-843: Service Oriented Architecture
Master of Information System
Management
These may run on different
machines.
16
SCA Composites (5)
reference
properties
services
wire
wire
references
service
A wire is an abstract representation
of the relationship between a
reference and some service that
meets the needs of that reference.
95-843: Service Oriented Architecture
Master of Information System
Management
17
SCA Composites in “Skiddle”
A composite solves a business problem.
<composite>
<service>
<property>
<reference>
<wire>
<component>
<implementation>
<service>
<property>
<reference>
</component>
<more components >
:
</composite>
A service contains binding information.
A reference contains binding information.
A wire connects components.
Components may live in different
processes or on different machines.
Components might be written in Java,
BPEL or some other language.
A composite may be used as a component
in a higher-level assembly.
A composite does not cross domain
boundaries.
95-843: Service Oriented Architecture
18
Master of Information System
Management
SCA Domains
• Contain one or more composites.
• May cross machine and process
boundaries.
• Are each managed by a single
group of people.
• Run on a single vendor’s SCA
runtime.
• Place no restrictions on how
internal communication is done.
95-843: Service Oriented Architecture
Master of Information System
Management
19
SCA Bindings
• Bindings specify how one component
communicates with another.
• A single component may have multiple
bindings.
• The use of bindings separate what a
component does from how we
communicate with it.
95-843: Service Oriented Architecture
Master of Information System
Management
20
SCA Services, References
& Properties
• Components expose one or more services.
• How the services are described depends on
the technology.
• Descriptions for clients in other domains
would typically use interoperable WSDL.
• A service provides some number of
operations.
• If a component uses other services then
these are described with references.
• Properties are values taken from the SCDL
and describe the world to the component.
95-843: Service Oriented Architecture
Master of Information System
Management
21
SCA Summary
• From www.osoa.org:
• As your SOA becomes more complex, you'll need the
simplicity and flexibility of SCA. The Service Component
Architecture helps you:
• Save time and money - A simpler API means a shorter
learning curve with fewer errors.
• Enable and encourage reuse - Developers can create
composites that perform useful functions. SCA makes it easy
to use and reuse them.
• Manage your system - Because policies can be defined outside
the code that performs the service, you can change the
policies without changing the code.
95-843: Service Oriented Architecture
Master of Information System
Management
22
Service Data Objects
(SDO)
• A specification to unify data programming
across heterogeneous data sources.
• May be used by SCA to interact with data
sources.
• Several competing approaches exist in the
Java persistence API space.
• SDO is more mature and general than
Java’s Persistence API (JPA).
• SDO is not Java specific, e.g., has support in
PHP.
95-843: Service Oriented Architecture
Master of Information System
Management
23
Service Data Objects
(SDO)
• Typical data sources include:
JDBC
Entity EJB’s
Web Services
XML sources
JMS messages
Enterprise Information Systems
through J2EE Connector Architecture
95-843: Service Oriented Architecture
Master of Information System
Management
24
Goals of SDO
• To simplify the life of the application
developer.
• To provide new opportunities for tools
and frameworks to work with a wide
variety of data sources.
• Thus, we see support for both static
(account.getBalance()) and dynamic
(resultSet.getFloat(“BALANCE”)) data
API’s. Quiz: Which one is for application
programmers and which one is for
tools?
95-843: Service Oriented Architecture
Master of Information System
Management
25
SDO Architecture (1)
• Based on disconnected data
graphs and optimistic concurrency
(OC).
One DAS may
client
OC: If any change occurs on the
backend while the client is making
changes, a subsequent attempt to
update must be rejected. The client
would then need to take appropriate
action. Pessimistic concurrency locks
resources. OC is preferred if concurrent
access is rare.
95-843: Service Oriented Architecture
Master of Information System
Management
Data Access work with
Service (DAS) RDBMS and
another may
work with
XML etc.
Data Source
The DAS
creates the
graph of
data
objects.
26
SDO Architecture(2)
• Data Objects hold the data and metadata.
• Data Objects have rich relationship support.
• The Data Graph logs every change to the data.
client
Data Access
Service (DAS)
• Xpath is used to dynamically
select data objects from the
data graph.
95-843: Service Oriented Architecture
Master of Information System
Management
Data Source
27
SDO Architecture(3)
• Data Access Services come in various forms:
Relational
Data
Access
Service
client
EJB Data
Access
Service
XML Data
Access
Service
95-843: Service Oriented Architecture
Master of Information System
Management
28
SCA and JBI
• See article by Mike Edwards (IBM)
at http://www.osoa.org/display/Main/Relationship+of+SCA+and+JBI
• How does SCA differ from JBI?
• JBI stands for Java Business Integration
• JBI defines a set of of Service Provider Interfaces for
middleware providers to implement if they want to
install new service engines (SCA implementation types)
or binding components (SCA bindings).
• SCA is for developers, assemblers and deployers of
business services. SCA says nothing about how new
implementation types or new bindings might be
introduced.
• JBI is for middleware vendors. SCA is for business
developers.
95-843: Service Oriented Architecture
Master of Information System
Management
29
SCA and JBI Bottom Line
• See article by Mike Edwards (IBM)
at http://www.osoa.org/display/Main/Relationship+of+SCA+and+JBI
“JBI should be considered a Java technology that
potentially helps middleware vendors to implement
SCA. JBI and SCA do not compete or conflict with each
other.”
“SCA, on the other hand, allows multiple technologies
to be used to implement services( e.g. Java, BPEL,
C++) and multiple bindings to communicate with
services (e.g. web services, JMS).”
95-843: Service Oriented Architecture
Master of Information System
Management
30
Download