37
Colorado Software Summit: October 22 – 27, 2006 Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 1 © Copyright 2006, IBM Corporation Open Source SCA – The Apache Tuscany Project Jean-Sebastien Delfino IBM Burlingame Lab

Open Source SCA – The Apache Tuscany · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Embed Size (px)

Citation preview

Page 1: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 1

© Copyright 2006, IBM Corporation

Open Source SCA –

The Apache Tuscany Project

Jean-Sebastien DelfinoIBM Burlingame Lab

Page 2: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 2

© Copyright 2006, IBM Corporation

Agenda

Tuscany, SCA, SDO and DAS

Tuscany in the Apache Incubator

Tuscany / Java

Tuscany / C++

Looking Forward

A simple Calculator Example

Developing the BigBank Example

Questions?

Page 3: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 3

© Copyright 2006, IBM Corporation

Goals of the Tuscany Project

Implement an SOA programming model and runtime support based on the Open SOA specifications (SCA, SDO and DAS)

Not just a reference implementation

Build a developer and user community around this

programming model and help socialize SCA, SDO, and

DAS

Gain early experience and help refine the specifications

based on that experience

Broaden the application of SOA to encompass multiple languages and a variety of component types

Page 4: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds
Page 5: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 5

© Copyright 2006, IBM Corporation

Service Component Architecture

A programming model for developing services using component assembly

Multiple languages, multiple container technologies,

and multiple service access methods

Declarative policies for infrastructure services

Security, transactions, reliable messaging

Business-level model for implementing services

Service components with service interfaces

No technical APIs like JDBC, JCA, JMS, …

Page 6: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 6

© Copyright 2006, IBM Corporation

Service Component Architecture

Binding model for multiple access methods

WSDL, SOAP over HTTP, messaging, RMI-IIOP, …

Multiple interface definition languages

Java interfaces

WSDL portTypes

C++ classes

Flexible data bindings

SDO (Service Data Objects)

Axiom, E4X, etc.

Page 7: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds
Page 8: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 8

© Copyright 2006, IBM Corporation

SCA Composites

Composite A

Component

AService

BindingWeb ServiceSCAJCAJMSSLSB…

BindingWeb ServiceSCAJCAJMSSLSB…

Component

B

Service-Java interface-WSDL PortType

Reference-Java interface-WSDL PortType

Wire WireWire

Reference

Propertysetting

Properties

Page 9: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 9

© Copyright 2006, IBM Corporation

Service Data Objects

Object/Java API that spans types of data to provide

Object(value)-based read-modify-write

Complex data structures (not just rows)

Disconnected access pattern

Optimistic concurrency control model

Tools for data binding

Industry Support

Joint specification: BEA, IBM, Oracle, SAP, Sybase and Xcalia

Open source implementations (Apache, Eclipse)

Products

Page 10: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 10

© Copyright 2006, IBM Corporation

SDO and Data Access Service

Page 11: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 11

© Copyright 2006, IBM Corporation

Agenda

SCA, SDO and DAS

Tuscany in the Apache Incubator

Tuscany / Java

Tuscany / C++

Looking Forward

A simple Calculator Example

Developing the BigBank Example

Questions?

Page 12: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 12

© Copyright 2006, IBM Corporation

Tuscany in the Apache Incubator

Project created in Dec 2005 with an initial code

contribution from IBM and BEA

Implementation of SCA, SDO and DAS in Java and

C++

Companion PHP project at PECL.net

First stable tag in Feb 2006

M1 releases for Java and C++ in June and August

M2 releases... now...

The Tuscany Community is growing

Page 13: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 13

© Copyright 2006, IBM Corporation

Tuscany and other Open Source projects

Axis2/Java and Axis2/C for Web Services

Celtix for Web Services and JMS

Service-Mix binding

Apache Stdcxx (Standard C++ Library)

Page 14: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 14

© Copyright 2006, IBM Corporation

Tuscany – Getting Involved

Home page: http://incubator.apache.org/tuscany

Code: http://svn.apache.org/repos/asf/incubator/tuscany

svn co http://svn.apache.org/repos/asf/incubator/tuscany/java

svn co http://svn.apache.org/repos/asf/incubator/tuscany/cpp

Dev mailing list: [email protected]

User mailing list: [email protected]

Commit mailing list: [email protected]

JIRA issues: http://issues.apache.org/jira/browse/TUSCANY

Page 15: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 15

© Copyright 2006, IBM Corporation

Agenda

SCA, SDO and DAS

Tuscany in the Apache Incubator

Tuscany / Java

Tuscany / C++

Looking Forward

A simple Calculator Example

Developing the BigBank Example

Questions?

Page 16: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 16

© Copyright 2006, IBM Corporation

Tuscany SCA / Java

Open source implementation of the SCA specification

Running on J2SE, Tomcat, Jetty, others

IOC container for POJO components

Support for Web Services

Support for SDO and other Data bindings

Extensible platform

Ability to add more component implementation types

and binding types

Page 17: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 17

© Copyright 2006, IBM Corporation

Tuscany SCA / Java

Samples and scenarios

Samples to demonstrate the technology and

programming model

Bigger scenarios / applications incl. the BigBank

scenario from the SCA spec

Command line tools

WSDL to Java, Java to WSDL

Deployment tools

Maven plugins

Page 18: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 18

© Copyright 2006, IBM Corporation

Tuscany SDO / Java

Open source implementation of the SDO specification

Dynamic data object support

Static code generation

Helper classes (XMLHelper, XSDHelper, DataFactory,

CopyHelper, EqualityHelper)

ChangeSummary support

Integration with Axiom and other Data bindings

Metadata handling / scoping

Command line tools

Java and XSD generators

Maven plugins

Page 19: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 19

© Copyright 2006, IBM Corporation

Tuscany DAS / Java

Provides relational access in terms of SDO

DataObjects

Optimistic Concurrency control

Database-generated IDs

Stored procedures

DB2/Derby/MySQL

Partial updates

Static and Dynamic SDOs

Page 20: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 20

© Copyright 2006, IBM Corporation

Tuscany/Java M1 release

June 06

Implements a subset of SCA 0.9

SDO 2.0.1

DAS / RDB

Runtime integrated with Tomcat

Support for Java and WSDL interface types

Java and JavaScript components

Groovy and Ruby prototypes

Web Service binding / Axis2 and Celtix

JSON-RPC binding

Page 21: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 21

© Copyright 2006, IBM Corporation

Agenda

SCA, SDO and DAS

Tuscany in the Apache Incubator

Tuscany / Java

Tuscany / C++

Looking Forward

A simple Calculator Example

Developing the BigBank Example

Questions?

Page 22: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 22

© Copyright 2006, IBM Corporation

Tuscany SCA / C++

Open source implementation of the SCA specification

Windows and Linux distributions

Support for C++ components

Support for Web Services

Support for SDO

Support for scripting languages (PHP, Ruby, Python etc.)

Extensible platform

Ability to add more component implementation types

and binding types

Page 23: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 23

© Copyright 2006, IBM Corporation

Tuscany SDO / C++

Open source implementation of the SDO specification

High Performance

Integration with scripting languages (PHP etc.)

No code generation for now

Integration with Standard C++ Library

Page 24: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 24

© Copyright 2006, IBM Corporation

Tuscany/C++ M1 release

August 06

Subset of SCA 0.9

SDO 2.0.1 (using Libxml2 for XML parsing)

Windows and Linux distributions

MS Visual Studio and GNU Automake builds

Support for C++ and WSDL interface types

C++ components

Web Service binding / Axis2C

Page 25: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 25

© Copyright 2006, IBM Corporation

Agenda

SCA, SDO and DAS

Tuscany in the Apache Incubator

Tuscany / Java

Tuscany / C++

Looking Forward

A simple Calculator Example

Developing the BigBank Example

Questions?

Page 26: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 26

© Copyright 2006, IBM Corporation

Latest news

Project voted to publish SCA and SDO C++ M2 release, now

going through Incubator PMC vote

Project voted to publish SDO Java M2 release, now going through

Incubator PMC vote

Community working on finalizing SCA Java M2 release

New JMS binding

Community discussion just starting with Apache ODE

Page 27: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 27

© Copyright 2006, IBM Corporation

Looking Forward

SCA spec revisions coming up

Spec APIs being developed in Tuscany

Proposals for new functionality

Early SDO 2.1 features

More...

Support for SOA policies e.g. security

Support additional languages and protocols

Interop and integration between Java and C++ runtimes

SDO added value (metadata handling, codegen)

Page 28: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 28

© Copyright 2006, IBM Corporation

Really Looking Forward

Tuscany is a framework for supporting SOA applications

A real SOA programming model

Multi-language, multi-protocol, multi-platform

Allows developers to write applications their way

Integrates with programming models most suited to the

application (Java, C++, scripting etc.)

Simplifies the handling of data with SDO

Provides the glue needed to connect the service together

Making assembly / wiring easy with SCDL

Mediations to fix impedance mismatch between services

Policies to support infrastructure requirements

Page 29: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 29

© Copyright 2006, IBM Corporation

Agenda

SCA, SDO and DAS

Tuscany in the Apache Incubator

Tuscany / Java

Tuscany / C++

Looking Forward

A simple Calculator Example

Developing the BigBank Example

Questions?

Page 30: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 30

© Copyright 2006, IBM Corporation

Calculator Example / Java

Demo

Page 31: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 31

© Copyright 2006, IBM Corporation

Calculator Example / Ruby

Demo

Page 32: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 32

© Copyright 2006, IBM Corporation

Agenda

SCA, SDO and DAS

Tuscany in the Apache Incubator

Tuscany / Java

Tuscany / C++

Looking Forward

A simple Calculator Example

Developing the BigBank Example

Questions?

Page 33: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 33

© Copyright 2006, IBM Corporation

Developing BigBank - 1

Page 34: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 34

© Copyright 2006, IBM Corporation

Developing BigBank - 2

Page 35: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 35

© Copyright 2006, IBM Corporation

Developing BigBank - Demo

Demo

Page 36: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 36

© Copyright 2006, IBM Corporation

Agenda

SCA, SDO and DAS

Tuscany in the Apache Incubator

Tuscany / Java

Tuscany / C++

Looking Forward

A simple Calculator Example

Developing the BigBank Example

Questions?

Page 37: Open Source SCA – The Apache Tuscany  · PDF fileOptimistic concurrency control model ... IOC container for POJO components ... MS Visual Studio and GNU Automake builds

Colorado Software Summit: October 22 – 27, 2006

Jean-Sebastien Delfino – Open Source SCA – The Apache Tuscany Project Page 37

© Copyright 2006, IBM Corporation

Questions?

http://incubator.apache.org/tuscany