open source soa apache tuscany and php soa n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Open Source SOA Apache Tuscany and PHP/SOA PowerPoint Presentation
Download Presentation
Open Source SOA Apache Tuscany and PHP/SOA

Loading in 2 Seconds...

play fullscreen
1 / 31

Open Source SOA Apache Tuscany and PHP/SOA - PowerPoint PPT Presentation


  • 131 Views
  • Uploaded on

Open Source SOA Apache Tuscany and PHP/SOA. Simon Laws (simonslaws AT googlemail DOT com) Kelvin Goodson (kelvingoodson AT apache DOT com) 20 th October, 2006. Agenda. Why are we doing it Motivation What are we working on SOA Base Programming Model Service Component Architecture (SCA)

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Open Source SOA Apache Tuscany and PHP/SOA' - gefen


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
open source soa apache tuscany and php soa

Open Source SOA Apache Tuscany and PHP/SOA

Simon Laws (simonslaws AT googlemail DOT com)

Kelvin Goodson (kelvingoodson AT apache DOT com)

20th October, 2006

agenda
Agenda
  • Why are we doing it
    • Motivation
  • What are we working on
    • SOA Base Programming Model
    • Service Component Architecture (SCA)
    • Service Data Objects (SDO)
  • How, Who, Where, When…
    • Specs, Apache Tuscany, PHP and related activity
  • Q & A
why soa
Why SOA?

Services/Components (reusable functional assets)

Wiring (service composition)

Current It Infrastructure

Rigid

Fragile

Static

Complex

Bespoke

Flexible

Resilient

Extendable

Manageable

Reusable

why are we doing this in open source
Why Are We Doing This In Open Source
  • Promote a common and open approach to simplified application development
    • Insulate business logic developers from infrastructure complexity
  • Gain broad industry support for IBM’s vision of SOA and our strategic programming model for services
    • Major vendors, the developer community, analysts, and customers
  • Expand beyond the Java/J2EE platform
    • Breadth of vision includes “legacy” code, scripting, declarative
    • Multiple language support is a key element in this
agenda1
Agenda
  • Why are we doing it
    • Motivation
  • What are we working on
    • SOA Base Programming Model
    • Service Component Architecture (SCA)
    • Service Data Objects (SDO)
  • How, Who, Where, When…
    • Specs, Apache Tuscany, PHP and related activity
  • Q & A
what are we working on soa programming model

Data

SDO

SDO

Business Logic

Implementation

// Print out the top level elements of the document

for ( int i=0; i < pl.size(); i++ )

{

const Property& p = pl[i];

if ( newdob->isSet(p))

{

if ( p.getType().isDataType() )

{

cout << newdob->getCString(i) << endl;

What Are We Working On – SOA Programming Model
  • Service Component Architecture (SCA)
    • Service definition, assembly, invocation and mediation

Services/Components

SCA

Wiring

  • Service Data Objects (SDO)
    • Data transfer between services and to/from a persistent store
    • SCA can work without SDO but SDO adds a common view of data
  • Continue the quest to rebalance the ratio of code to business content by hiding the infrastructure complexity
agenda2
Agenda
  • Why are we doing it
    • The motivation
  • What are we working on
    • SOA Programming Model
    • Service Component Architecture (SCA)
    • Service Data Objects (SDO)
  • How, Who, Where, When…
    • Approach
    • Apache Tuscany Project and related activity
  • Q & A
service component architecture sca
Service Component Architecture (SCA)
  • Specification produced through collaboration of many (18 to date) industry leaders
    • E.g. BEA, IBM, Oracle, Sun, SAP, IONA, Sybase
    • www.osoa.org
  • A model for building loosely-coupled systems based on a Service Oriented Architecture
    • Language neutral
    • Technology neutral
    • Vendor neutral
  • Provides higher level of abstraction for service composition to allow the architectural view of a system to be separated from specific implementation technology choices
  • Aims to make manageable the complexity associated with large-scale systems and enterprise applications
service assembly model

Composite

Composite

Web Service

Service Assembly Model
  • Model for assembling tightly coupled code
  • Model for assembling loosely coupled services

Composite

sca artefacts

Composite B

ImplementationJava,C++,etc..

SCA Artefacts
service component

ComponentType

Service Component

Properties

  • Services provided to other components
    • Defined in terms of a business interface
  • References to services provided by other components
    • Again, defined in terms of a business interface
  • Properties configure component behavior

Services

References

service implementation
Service Implementation
  • An implementation of application logic in some programming language
    • Conforms to the implementation model for that language
    • Java, C++ already specified, others in development, e.g. PHP
  • Implementation models try to avoid infrastructure constructs
    • For example, Java model uses Inversion of Control pattern

publicclass HelloWorldImpl implements HelloWorldService {

private String greeting;publicvoid setGreeting(String greeting) {this.greeting = greeting; }public String sayHello(String name) {

returngreeting + name;

}

}

composite assembly

ComponentA

Composite Assembly
  • Co-located, connected set of components
  • Services provided to other module
    • Defined by Services
  • Requires services provided by other modules
    • Defined as References
  • Wires connect components together

Reference

Composite X

Service

ComponentB

wiring
Wiring
  • Wires are used to connect components, services and references
    • Wiring is transparent to application code
    • Allows container system to change wiring without impacting the application
    • How wiring is performed is defined by the container implementation
  • Wire binding determines format of data
    • For example, web services, IIOP, REST
  • Wires can have policies attached to specify quality of service
    • Declarative Transactions, Security, Reliability
    • Implementation provided by container in conjunction with binding
big bank account composite
Big Bank – Account Composite

Web

Server

SCA

Composite AccountComposite

SCA

Component

AccountDataServiceComponent

SCA

Component

AccountServiceComponent

SDO

  • SCA is the component model
  • Components may be wired together
  • SDO DataObjects are the data flowing on wires between Components

Service

AccountService

.Net

Web

Service

SDO

Reference

StockQuoteService

SDO

More detail on this sample app:

http://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-sca/SCA_BuildingYourFirstApplication_V09.pdf

scdl component description
SCDL – Component Description
  • Each programming model concept has a representation in the XML-based Service Component Definition Language (SCDL)

<?xml version="1.0" encoding="ASCII"?>

<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9"

xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<service name="AccountService">

<interface.java interface="services.account.AccountService"/>

</service>

<reference name="accountDataService">

<interface.java interface="services.accountdata.AccountDataService"/>

</reference>

<reference name="stockQuoteService">

<interface.java interface="services.stockquote.StockQuoteService"/>

</reference>

<property name="currency" type="xsd:string" default="USD"/>

</componentType>

scdl module description
SCDL – Module Description

<?xml version="1.0" encoding="ASCII"?>

<composite xmlns="http://www.osoa.org/xmlns/sca/0.9"

xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"

name="bigbank.accountmodule" >

<service name="AccountService">

<interface.java interface="com.bigbank.account.AccountService"/>

<binding.ws port="http://www.bigbank.com/account#AccountServiceSOAP"/>

<reference>AccountServiceComponent/AccountService</reference>

</service>

<componentname="AccountServiceComponent">

<implementation.javaclass="services.account.AccountServiceImpl"/>

<properties>

<v:currency override="may">EURO</v:currency>

</properties>

<references>

<v:accountDataService>AccountDataServiceComponent</v:accountDataService>

<v:stockQuoteService>StockQuoteService</v:stockQuoteService>

</references>

</component>

</module>

why components
Why Components?
  • Why not just write Java or C++ modules?

Component

Component

(Re)deployment

Client

Component

Client

Component

reuse

Component

Client

Declarative composition and separation of concerns, for example, policy or binding can be specified independently of he implementation

Component

Client

Component

Component

agenda3
Agenda
  • Why are we doing it
    • Motivation
  • What are we working on
    • SOA Base Programming Model
    • Service Component Architecture (SCA)
    • Service Data Objects (SDO)
  • How, Who, Where, When…
    • Specs, Apache Tuscany, PHP and related activity
  • Q & A
service data objects
Service Data Objects
  • Uniform abstraction of data from many different sources
  • In-memory representation with dynamic or statically typed access
  • Used for data transfer between services
  • Data Access Services for persistence in different types of data store
  • Disconnected usage with optimistic concurrency
service data objects1
Service Data Objects

Typically within a single process

Data Graph

DataObject

Data

Object

Graph

Data Access

Service

Change

Summary

sdo example resulting sdo objects

company

name

employee_of_the_month

departments

containment=false

departments[0]

departments[1]

name

location

number

employees

name

employees

employees[0]

employees[1]

employees[0]

employees[1]

name

name

SN

is_manager

name

SN

is_manager

SDO Example – Resulting SDO Objects
agenda4
Agenda
  • Why are we doing it
    • Motivation
  • What are we working on
    • SOA Base Programming Model
    • Service Component Architecture (SCA)
    • Service Data Objects (SDO)
  • How, Who, Where, When…
    • Specs, Apache Tuscany, PHP and related activity
  • Q & A
sca and sdo timeline to date
SCA and SDO Timeline To Date

Nov 05

  • An industry consortium including IBM, BEA Systems, IONA, Oracle, SAP, Siebel, Sybase, Zend and Interface21 announce their intention to work together defining SCA and SDO
    • http://www-128.ibm.com/developerworks/webservices/library/specification/ws-scasdosumm/
  • SCA 0.9 and SDO 2.0 specifications made available
    • http://www-128.ibm.com/developerworks/library/specification/ws-sca/
    • http://www-128.ibm.com/developerworks/library/specification/ws-sdo/
  • Apache Tuscany incubator project initiated to include:
    • Java support for
    • SCA 0.9 supporting Axis/Tomcat and plain J2SE environments
    • SDO 2.0(subset initially)
    • Relational DAS support (JDBC/Derby)
    • C++ support for
    • SDO 2.0 with XML support only
    • SCA 0.9 supporting Apache Web server and Axis/C++
    • http://incubator.apache.org/tuscany/
  • SDO for PHP project release 1.0.1
    • Supporting Apache Web server and PHP 5.1
    • Hosted on PECL repository (beta available since July 2005)
    • http://pecl.php.net/package/sdo
  • Apache Tuscany Java Milestone 1 Release

Jan 06

March 06

May 06

open source soa activities
Open Source SOA Activities

Open Industry SOA

Tools

Specs

Implementation

Industry

Consortium

Eclipse

SOA

Tools

Project

PHP/PECL

Apache

Tuscany

SDO 2.0.1

SCA 0.9

Java

C++

PHP

Extension

SDO

Specification

JAVA

Assembly

Model

SCA

SCA

SCA

SDO with

XML Support

SDO with

XML Support

SDO

Client and

Implementation

Model

JAVA

SDO

Specification

CPP

Relational

DAS

Relational

DAS

XML

DAS

Relational

DAS

Client and

Implementation

Model

CPP

apache software foundation http www apache org
Apache Software Foundation http://www.apache.org/
  • Non-profit corporation

No staff, all volunteer

Elected membership

  • Primary goal is to foster open source communities

Provide technical infrastructure

Provide legal oversight

  • Technocratic Meritocracy

People earn status by what they do

  • Project communities are very independent

Project Management Committee is legal construct

      • Binding decisions e.g. to release software

Project community decides direction and priorities

PECL http://pecl.php.net/

  • PHP Extension Community Library
    • Hosted at php.net
  • Primary goal is to host native extensions for PHP
    • I.e. extensions written in C/C++
    • Extensions written in the PHP language itself are hosted over at PEAR
  • Less formal that Apache
    • Run by the PHP community to server their needs
    • Projects are proposed on the php.pecl.dev mailing list
    • Get added to PECL if people like the idea

PHP SOAhttp://osoa.org/display/PHP/SOA+PHP+Homepage

call for volunteers
Call for Volunteers
  • Projects are open to all
    • Working to build a diverse community
      • Java and C++ implementations of SCA and SDO At Apache
      • PHP implementation of SDO at PECL
    • Starting to get quite a lot of activity
      • Particular, for some reason, we are attracting a number of academics from Brazil
  • How can I help?
    • Download project and kick the tires
      • Upcoming Java and C++ M2 releases
      • PHP SCA 0.1.0
    • Give feedback on issues, suggestions for improvement
      • Documentation, ease of use, features
    • Contribute improvements
      • Anything from simple doc changes up to a new container
    • Feel free to contact us but you and the community get much better value when you interact directly on the projects mailing lists
links
Links
  • SCA and SDO specifications and white papershttp://www.ibm.com/developerworks/webservices/library/specification/ws-sca/http://www.ibm.com/developerworks/webservices/library/specification/ws-sdo/
  • Apache Tuscany Web sitehttp://incubator.apache.org/tuscany/
  • Apache Tuscany codehttp://svn.apache.org/repos/asf/incubator/tuscany/
  • Apache Tuscany Wikihttp://wiki.apache.org/ws/Tuscany
  • PHP Extension Community Library (PECL)http://pecl.php.net
  • PHP SOA Home Page

http://www.osoa.org/display/PHP/SOA+PHP+Homepage

  • Eclipse SOA Tools Projecthttp://www.eclipse.org/stp/
  • IBM SCA Wikihttp://instawiki.webahead.ibm.com/pilot/wiki/Wiki.jsp?page=Main&wiki=SCA