30
1 SOA Seminar Seminar on Service Oriented Architecture Composite Services Architecture (CSA) Sources: www.osoa.org “SOA for the Business Developer” by Margolis “Introducing SCA” by Chappell

Seminar on Service Oriented Architecture

  • Upload
    nelia

  • View
    37

  • Download
    0

Embed Size (px)

DESCRIPTION

Seminar on Service Oriented Architecture. Composite Services Architecture (CSA). Sources: www.osoa.org “SOA for the Business Developer” by Margolis “Introducing SCA” by Chappell. Composite Services Architecture (CSA). - PowerPoint PPT Presentation

Citation preview

Page 1: Seminar on Service Oriented Architecture

1SOA Seminar

Seminar on Service Oriented Architecture

Composite Services Architecture (CSA)Sources:

www.osoa.org“SOA for the Business Developer” by Margolis“Introducing SCA” by Chappell

Page 2: Seminar on Service Oriented Architecture

2SOA Seminar

Composite Services Architecture (CSA)

• In March 2007, Composite Services Architecture (CSA) is passed on to OASIS by the Open Service Oriented Architecture collaboration.

• CSA is supported by BEA, IBM, Oracle, Sun, 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.

Page 3: Seminar on Service Oriented Architecture

3SOA Seminar

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

Page 4: Seminar on Service Oriented Architecture

4SOA Seminar

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.

Page 5: Seminar on Service Oriented Architecture

5SOA Seminar 5Master of Information System Management

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. 

Page 6: Seminar on Service Oriented Architecture

6SOA Seminar 6Master of Information System Management

SCA Specifications (4)

• Bindings allow heterogeneous transports (SOAP, JMS, IIOP,etc.) to be used.

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. 

From www.osoa.org:

Page 7: Seminar on Service Oriented Architecture

7SOA Seminar

SCA Components (1)

Implemented in BPEL, Java, C++, etc.

This may also be a composite.

services

properties

references

<component> <implementation> <service> <binding>… <property> <reference> <binding>…</component>

Page 8: Seminar on Service Oriented Architecture

8SOA Seminar

SCA Components (2)

Implemented in BPEL, Java, C++, etc.

This may also be a composite.

services

properties

references

<component> has a name and list of policy intents <implementation> has a name and an implementation type <service> has an interface and a binding <property> names and values to be passed in <reference> includes a binding</component>

Page 9: Seminar on Service Oriented Architecture

9SOA Seminar

SCA Components (3)

Business logic Implementation

services

references

Property values passed in at runtime.

Operationsavailable toclients.

Other services this client depends on.

Dependency injection: The SCA runtime performs a lookup for thereference. The business logic need not be concerned with how theother service is accessed.Nor is the business logic developer concerned with how this componentis accessed. That detail is specified as a binding - outside of the businesslogic.

Page 10: Seminar on Service Oriented Architecture

10SOA Seminar

SCA Components (4)<composite>

<service> <property> <reference> <wire> <component> <implementation> <service> <property> <reference> </component>

<more components > :</composite>

A component is the atom of an SCA application. It lives within a composite.

A component is a configured implementation.

SCA is language agnostic.

SCDL defines how the componentinteracts with the outside world.

A component might talk to othercomponents within its own domain oroutside of its own domain.

An SCA runtime knows what to do withthis.

Page 11: Seminar on Service Oriented Architecture

11SOA Seminar

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>

What can we say about the component beingdefined?

Page 12: Seminar on Service Oriented Architecture

12SOA Seminar

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.

Page 13: Seminar on Service Oriented Architecture

13SOA Seminar

SCA Composites (1)

services

properties

references

wire wire

Page 14: Seminar on Service Oriented Architecture

14SOA Seminar

SCA Composites (2)

services

properties

references

wire wire

Components

Page 15: Seminar on Service Oriented Architecture

15SOA Seminar

SCA Composites (3)

services

properties

references

wire wire

Perhaps implementedin BPEL.

Perhaps implementedin Java.

Page 16: Seminar on Service Oriented Architecture

16SOA Seminar

SCA Composites (4)

services

properties

references

wire wire

How this communicationis done may be left up to the SCA runtime.

These may run on different machines.

Page 17: Seminar on Service Oriented Architecture

17SOA Seminar

SCA Composites (5)

services

properties

references

wire wire

reference

service

A wire is an abstract representationof the relationship between a reference and some service thatmeets the needs of that reference.

Page 18: Seminar on Service Oriented Architecture

18SOA Seminar

SCA Composites in “Skiddle”

<composite>

<service> <property> <reference> <wire> <component> <implementation> <service> <property> <reference> </component>

<more components > :</composite>

Contains binding information.

Contains binding information.A wire connects components.Components may live in differentprocesses or on different machines.

A composite solves a business problem.

Components might be written in Java,BPEL or some other language.

A composite may be used as a componentin a higher-level assembly.

A composite does not cross domain boundaries.

Page 19: Seminar on Service Oriented Architecture

19SOA Seminar

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.

Page 20: Seminar on Service Oriented Architecture

20SOA Seminar

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.

Page 21: Seminar on Service Oriented Architecture

21SOA Seminar

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.

Page 22: Seminar on Service Oriented Architecture

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. 

22SOA Seminar

Page 23: Seminar on Service Oriented Architecture

23SOA Seminar

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.

Page 24: Seminar on Service Oriented Architecture

24SOA Seminar

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

Page 25: Seminar on Service Oriented Architecture

25SOA Seminar

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. One for programmers the other for tools.

Page 26: Seminar on Service Oriented Architecture

26SOA Seminar

SDO Architecture (1)

• Based on disconnected data graphs and optimistic concurrency (OC).

clientData Access Service (DAS)

Data Source

OC: If any change occurs on the backend while the client is makingchanges, a subsequent attempt toupdate must be rejected. The clientwould then need to take appropriate action. Pessimistic concurrency locks resources. OC is preferred if concurrentaccess is rare.

One DAS maywork withRDBMS and another maywork withXML etc.

The DAS creates the graph of dataobjects.

Page 27: Seminar on Service Oriented Architecture

27SOA Seminar

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.

clientData Access Service (DAS)

Data Source

• Xpath is used to dynamically

select data objects from the data graph.

Page 28: Seminar on Service Oriented Architecture

28SOA Seminar

SDO Architecture(3)• Data Access Services come in various forms:

client

Relational Data

AccessService

EJB Data Access Service

XML Data Access Service

Page 29: Seminar on Service Oriented Architecture

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.

29SOA Seminar

Page 30: Seminar on Service Oriented Architecture

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).”

30SOA Seminar