State of the Art of Service Component Architecture Marco Creola - - PowerPoint PPT Presentation

state of the art of service component architecture
SMART_READER_LITE
LIVE PREVIEW

State of the Art of Service Component Architecture Marco Creola - - PowerPoint PPT Presentation

Introduction Service Component Architecture Service Data Objects Implementations Summary State of the Art of Service Component Architecture Marco Creola Supervisor: Dr. Hasan Professor: Dr. Burkhard Stiller University of Zurich,


slide-1
SLIDE 1

Introduction Service Component Architecture Service Data Objects Implementations Summary

State of the Art of Service Component Architecture

Marco Creola

Supervisor: Dr. Hasan Professor: Dr. Burkhard Stiller University of Zurich, Departement of Informatics (IFI)

December 16, 2010

Marco Creola, 99-708-174 Service Component Architecture

slide-2
SLIDE 2

Introduction Service Component Architecture Service Data Objects Implementations Summary

1 Introduction 2 Service Component Architecture 3 Service Data Objects 4 Implementations 5 Summary

Marco Creola, 99-708-174 Service Component Architecture 2

slide-3
SLIDE 3

Introduction Service Component Architecture Service Data Objects Implementations Summary Description of the Work Overview Service-oriented Architecture (SOA)

1 Introduction

Marco Creola, 99-708-174 Service Component Architecture 3

slide-4
SLIDE 4

Introduction Service Component Architecture Service Data Objects Implementations Summary Description of the Work Overview Service-oriented Architecture (SOA)

Description of the Work

❼ Understand principles of Service-oriented Architecture (SOA) ❼ Learn about Service Component Architecture (SCA) and

Service Data Objects (SDO)

❼ Study SCA runtime implementations and show differences of

these implementations

Marco Creola, 99-708-174 Service Component Architecture 4

slide-5
SLIDE 5

Introduction Service Component Architecture Service Data Objects Implementations Summary Description of the Work Overview Service-oriented Architecture (SOA)

Overview

❼ Massive growth of software architectures in the past years ❼ Growth was mostly out of control ❼ Consequences:

❼ Complex architectures ❼ Not maintainable (or only with very high costs)

❼ Possible solution to overcome these shortcomings: SOA

Marco Creola, 99-708-174 Service Component Architecture 5

slide-6
SLIDE 6

Introduction Service Component Architecture Service Data Objects Implementations Summary Description of the Work Overview Service-oriented Architecture (SOA)

SOA - Principles

❼ Many definitions ❼ Primary goal: implement business processes more efficient

to provide better solutions

❼ Business process = service or composition of services ❼ Software criterias: loose coupled, encapsulated, modular,

composable, reusable and as a service

❼ Rather an evolution than a revolution: combines best

practices of previous software architectures

Marco Creola, 99-708-174 Service Component Architecture 6

slide-7
SLIDE 7

Introduction Service Component Architecture Service Data Objects Implementations Summary Description of the Work Overview Service-oriented Architecture (SOA)

SOA - Implementations

❼ SOA specification does not define the implementation ❼ Most implementations use web services (more platform

independent, qualified for distributed systems)

❼ Service Component Architecture (SCA) is such an

implementation

Marco Creola, 99-708-174 Service Component Architecture 7

slide-8
SLIDE 8

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SCA Component SCA Composite SCA Domain Example

2 Service Component Architecture

Marco Creola, 99-708-174 Service Component Architecture 8

slide-9
SLIDE 9

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SCA Component SCA Composite SCA Domain Example

Overview

❼ SCA specification by OASIS1 ❼ OASIS is a consortium (with members like IBM, Oracle and

Red Hat)

❼ Current version of specification is 1.0 (2007) (currently

working on v1.1)

❼ Main characteristics

❼ Simplify and unify service-oriented paradigm ❼ Implement business processes (= services) as components and

composites to create and to connect business logic (nesting)

❼ Flexible use of communication (inter SCA and with non-SCA) ❼ Programming language and platform independent

1Organization for the Advancement of Structured Information Standards Marco Creola, 99-708-174 Service Component Architecture 9

slide-10
SLIDE 10

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SCA Component SCA Composite SCA Domain Example

SCA Component

❼ Basic element of SCA ❼ Represents a business

process or a single task within a business process

Source: OASIS: SCA Version 1.00, March 2007. Marco Creola, 99-708-174 Service Component Architecture 10

slide-11
SLIDE 11

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SCA Component SCA Composite SCA Domain Example

SCA Composite

Source: OASIS: SCA Version 1.00, March 2007. Marco Creola, 99-708-174 Service Component Architecture 11

slide-12
SLIDE 12

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SCA Component SCA Composite SCA Domain Example

SCA Domain

Source: D. Chappell: Introducing SCA, Whitepaper, 2007. Marco Creola, 99-708-174 Service Component Architecture 12

slide-13
SLIDE 13

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SCA Component SCA Composite SCA Domain Example

Example with Java - I

Marco Creola, 99-708-174 Service Component Architecture 13

slide-14
SLIDE 14

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SCA Component SCA Composite SCA Domain Example

Example with Java - II

1 public interface AddService { 2 int add(int n1 , int n2); 3 } 1 public class AddServiceImpl implements AddService { 2 3 public int add(int n1 , int n2) { 4 return n1 + n2; 5 } 6 7 }

Marco Creola, 99-708-174 Service Component Architecture 14

slide-15
SLIDE 15

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SCA Component SCA Composite SCA Domain Example

Example with Java - III

Marco Creola, 99-708-174 Service Component Architecture 15

slide-16
SLIDE 16

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SCA Component SCA Composite SCA Domain Example

Example with Java - IV

1 @Remotable 2 public interface CalculatorService { 3 String getResult(int n1 , int n2); 4 } 1 public class CalculatorServiceImpl implements CalculatorService { 2 3 @Property 4 public String myProperty ; 5 6 @Reference 7 private AddService addService ; 8 9 public String getResult(int n1 , int n2) { 10 // Note: no instantiation (e.g. addService = new AddServiceImpl ()) 11 return myProperty .concat(addService .add(n1 , n2)); 12 } 13 14 }

Marco Creola, 99-708-174 Service Component Architecture 16

slide-17
SLIDE 17

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SCA Component SCA Composite SCA Domain Example

Example with Java - V

Service Component Definition Language (SCDL, ”skiddle”):

1 <composite name=" CalculatorComposite "> 2 3 <component name=" CalcServiceComponent "> 4 5 <implementation .java class=" CalculatorServiceImpl "/> 6 7 <reference name="addService " target=" AddServiceComponent " /> 8 9 <property name=" myProperty ">The result is </ property > 10 11 <service name=" CalculatorRemote "> 12 <binding.ws uri="http :// www.example.com/ calculator "/> 13 </service > 14 15 </component > 16 17 <component name=" AddServiceComponent "> 18 <implementation .java class=" AddServiceImpl "/> 19 </component > 20 21 </composite >

Marco Creola, 99-708-174 Service Component Architecture 17

slide-18
SLIDE 18

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SCA Component SCA Composite SCA Domain Example

Example with Java - VI

1 <composite name=" CalculatorComposite "> 2 3 <component name=" CalcServiceComponent "> 4 5 <implementation .java class=" CalculatorServiceImpl "/> 6 ... 7 8 </component > 9 10 <component name=" AddServiceComponent "> 11 <!-- Ruby code

  • ->

12 <implementation .script script=" AddServiceImpl .rb"/> 13 </component > 14 15 </composite >

Marco Creola, 99-708-174 Service Component Architecture 18

slide-19
SLIDE 19

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SCA Component SCA Composite SCA Domain Example

Example with Java - VII

1 <composite name=" CalculatorComposite "> 2 3 <component name=" CalcServiceComponent "> 4 5 ... 6 7 <service name=" CalculatorRemote "> 8 <binding.ws ... /> 9 <binding.jsonrpc ... /> 10 </service > 11 12 </component > 13 14 ... 15 16 </composite >

Marco Creola, 99-708-174 Service Component Architecture 19

slide-20
SLIDE 20

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SCA Component SCA Composite SCA Domain Example

Example with Java - VIII

Marco Creola, 99-708-174 Service Component Architecture 20

slide-21
SLIDE 21

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SCA Component SCA Composite SCA Domain Example

Example with Java - IX

1 <composite name=" CalculatorComposite "> 2 3 <property name=" compProperty ">The result is </ property > 4 5 <service name="myService" promote=" CalcServiceComponent / CalculatorRemote "> 6 <binding.ws uri="http :// www.example.com/calculator "/> 7 </service > 8 9 <component name=" CalcServiceComponent "> 10 ... 11 <property name=" myProperty " source=" ✩compProperty "/> 12 <service name=" CalculatorRemote "/> 13 </component > 14 15 ... 16 17 </composite >

Marco Creola, 99-708-174 Service Component Architecture 21

slide-22
SLIDE 22

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SDO in-depth

3 Service Data Objects

Marco Creola, 99-708-174 Service Component Architecture 22

slide-23
SLIDE 23

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SDO in-depth

Overview

❼ Service Data Objects (SDO) specification by OASIS ❼ Current version of specification is 2.1 (2007) ❼ Goal: SDO unifies and simplifies heterogenous data access ❼ Flexibility: neither query language nor database backend are

defined

❼ SDO is a key component of SCA (communication between

components, database etc.)

Marco Creola, 99-708-174 Service Component Architecture 23

slide-24
SLIDE 24

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SDO in-depth

SDO in-depth - I

Source: OASIS: Service Data Objects (SDO) v2.1, Whitepaper, March 2007. Marco Creola, 99-708-174 Service Component Architecture 24

slide-25
SLIDE 25

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview SDO in-depth

SDO in-depth - II

Example of an XML and SDO mapping (1:n relation):

Source: OASIS: Service Data Objects (SDO) v2.1, Whitepaper, March 2007. Marco Creola, 99-708-174 Service Component Architecture 25

slide-26
SLIDE 26

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview Apache Tuscany Fabric3 Paremus Service Fabric Differences

4 Implementations

Marco Creola, 99-708-174 Service Component Architecture 26

slide-27
SLIDE 27

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview Apache Tuscany Fabric3 Paremus Service Fabric Differences

Overview

❼ SCA software needs a runtime environment ❼ SCA doesn’t specify how a runtime should be implemented

Marco Creola, 99-708-174 Service Component Architecture 27

slide-28
SLIDE 28

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview Apache Tuscany Fabric3 Paremus Service Fabric Differences

Apache Tuscany - I

❼ Subproject of Apache Software Foundation ❼ Open Source (Apache License) ❼ Members: companies and a community ❼ Java and C++ implementation ❼ SDO integration ❼ Standalone, hosts (Tomcat, Jetty etc.) or distributed systems

(like a Cloud)

❼ Eclipse Plugin

Marco Creola, 99-708-174 Service Component Architecture 28

slide-29
SLIDE 29

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview Apache Tuscany Fabric3 Paremus Service Fabric Differences

Apache Tuscany - II

Extensions Implementations Bindings Databindings Java Ajax JAXB C++ JMS SDO Script JSON-RPC Spring HTTP BPEL RSS XQuery Extendable with custom extensions

Marco Creola, 99-708-174 Service Component Architecture 29

slide-30
SLIDE 30

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview Apache Tuscany Fabric3 Paremus Service Fabric Differences

Fabric3 - I

❼ Metaform Systems ❼ Dual Licensing (i.e. free for non-commercial use) ❼ Standalone, hosts, clusters, Cloud

Marco Creola, 99-708-174 Service Component Architecture 30

slide-31
SLIDE 31

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview Apache Tuscany Fabric3 Paremus Service Fabric Differences

Fabric3 - II

Extensions Implementations Bindings Databindings Java Web Services (.NET interop.)

  • JAX-RS/REST

JMS JUnit HTTP TCP FTP Extendable with custom extensions (build with SCA programming model)

Marco Creola, 99-708-174 Service Component Architecture 31

slide-32
SLIDE 32

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview Apache Tuscany Fabric3 Paremus Service Fabric Differences

Paremus Service Fabric - I

❼ Formerly Newton Framework ❼ Proprietary and not free ❼ Framework for SCA and OSGi ❼ Focus on distributed systems and Private Clouds on the

Platform-as-a-Service layer (shipped with Cloud management tools)

Marco Creola, 99-708-174 Service Component Architecture 32

slide-33
SLIDE 33

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview Apache Tuscany Fabric3 Paremus Service Fabric Differences

Paremus Service Fabric - II

Extensions Implementations Bindings Databindings Java RMI

  • Spring

OSGi (interface) OSGi Extendable with custom extensions

Marco Creola, 99-708-174 Service Component Architecture 33

slide-34
SLIDE 34

Introduction Service Component Architecture Service Data Objects Implementations Summary Overview Apache Tuscany Fabric3 Paremus Service Fabric Differences

Differences

❼ Costs

❼ Tuscany: Open Source ❼ Fabric3: Dual Licensing ❼ Paremus: Not free

❼ Open Source community behind Tuscany, private companies

behind Fabric3 and Paremus

❼ Tuscany offers most extensions with standard installation ❼ Fabric3 extensions can be made within the SCA environment ❼ Tuscany implements SDO ❼ Paremus most flexible with Cloud environments (shiped with

extra tools)

❼ Fabric3 and Paremus with commercial support

Marco Creola, 99-708-174 Service Component Architecture 34

slide-35
SLIDE 35

Introduction Service Component Architecture Service Data Objects Implementations Summary Summary Questions Discussion

5 Summary

Marco Creola, 99-708-174 Service Component Architecture 35

slide-36
SLIDE 36

Introduction Service Component Architecture Service Data Objects Implementations Summary Summary Questions Discussion

Summary

❼ SOA gained importance ❼ SCA is an implementation of SOA ❼ SCA is programming language and platform independent ❼ SCA decouples configuration from code (SCDL files) ❼ SDO is a key part of SCA ❼ SCA needs a runtime: e.g., Tuscany, Fabric3, Paremus Service

Fabric

Marco Creola, 99-708-174 Service Component Architecture 36

slide-37
SLIDE 37

Introduction Service Component Architecture Service Data Objects Implementations Summary Summary Questions Discussion

Questions

Questions?

Marco Creola, 99-708-174 Service Component Architecture 37

slide-38
SLIDE 38

Introduction Service Component Architecture Service Data Objects Implementations Summary Summary Questions Discussion

Discussion

#1 What do you think about SCA? Promising or just another buzzword?

Marco Creola, 99-708-174 Service Component Architecture 38

slide-39
SLIDE 39

Introduction Service Component Architecture Service Data Objects Implementations Summary Summary Questions Discussion

Discussion

#2 SCA is very flexible regarding interoperability. SCA runtimes of different vendors and non-SCA software may interact with each

  • ther.

Do different implementations and the flexibility of SCA lead to the next ”out-of-control” growth because its complexity? Or, is the flexibility one of the main advantages of SCA?

Marco Creola, 99-708-174 Service Component Architecture 39

slide-40
SLIDE 40

Introduction Service Component Architecture Service Data Objects Implementations Summary Summary Questions Discussion

Discussion

#3 SCA should make a developer’s life easier. Developers don’t have to care about different APIs: the runtime manages bindings with different protocols and runs software coded in different languages. Is it the right way, if developers do not have to care about APIs? May they lose control over the runtime? Or does SCA just raise the productivity of the developers because of its simplicity?

Marco Creola, 99-708-174 Service Component Architecture 40

slide-41
SLIDE 41

Introduction Service Component Architecture Service Data Objects Implementations Summary Summary Questions Discussion

Discussion

#4 ”OASIS [...] has formed six new technical committees to simplify SOA application development by advancing the SCA family of specifications.”

Sources: http: // www. oasis-open. org/ news/

  • asis-news-2007-08-09. php

http: // geekandpoke. typepad. com/ geekandpoke/ 2007/ 09/ by-the-rivers-o. html

Marco Creola, 99-708-174 Service Component Architecture 41

slide-42
SLIDE 42

Introduction Service Component Architecture Service Data Objects Implementations Summary Summary Questions Discussion

Discussion

#5 Jim Marion, founder of Metaform Systems (Fabric3): ”Tuscany is led by IBM and their business model is typically to up-sell customers to products that provide enterprise features on top of Open Source.” 2 Also, IBM is one of the key member in the committees of the SCA specification. Do you think, that profit-oriented companies influence the development of a specification negatively due to commercial expectations?

2Source: http://www.infoq.com/news/2010/05/Fabric3 Marco Creola, 99-708-174 Service Component Architecture 42