SCA Assembly Model Anish Karmarkar – Oracle Michael Rowley – BEA.

Slides:



Advertisements
Similar presentations
Web Service Architecture
Advertisements

RPC Robert Grimm New York University Remote Procedure Calls.
OpenCSA Member Section – Service Component Architecture 1 1 SCA Overview Sanjay Patil – SAP Mike Edwards - IBM.
Middleware Technology Training Lab Course. Outline  Lab introduction  Create Web services  Business modeling  Implement a business process  Integrate.
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Tu sca ny 1 Simplifying Service Oriented Applications with The Apache Tuscany project Jeremy Boynes 27 July 2006.
Session 2: task 3.2 GCM, Kracow, June l Current status of GCM Denis Caromel (10 mn each talk) l Wrapping CCA Components as GCM Components Maciej.
1 Build a Web Application on J2EE. 2 J2EE Scenario Client – Web Server – EIS Resources Client – Web Server – EIS Resources Client – Application Server.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Introduction to EJB INFORMATICS ENGINEERING – UNIVERSITY OF BRAWIJAYA Eriq Muhammad Adams J
Getting Started with WCF Windows Communication Foundation 4.0 Development Chapter 1.
OOP Languages: Java vs C++
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
INTRODUCING SCA Byungwook Cho Nov.2007.
A Simplified Approach to Web Service Development Peter Kelly Paul Coddington Andrew Wendelborn.
C Copyright © 2009, Oracle. All rights reserved. Appendix C: Service-Oriented Architectures.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
An Introduction to Software Architecture
1 Advanced SCA Michael Rowley, Ph.D. Director, Technology Office of the CTO April 28, 2008 TS-3765.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 10: Service Component Architecture.
Introduction to J2EE Architecture Portions by Kunal Mehta.
Introduction to MDA (Model Driven Architecture) CYT.
The Grid Component Model: an Overview “Proposal for a Grid Component Model” DPM02 “Basic Features of the Grid Component Model (assessed)” -- DPM04 CoreGrid.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Scalable Metadata Definition Frameworks Raymond Plante NCSA/NVO Toward an International Virtual Observatory How do we encourage a smooth evolution of metadata.
Tuscany 2.x Extensibility and SPIs Raymond Feng. Tuscany Extensibility Cx2x/Tuscany+2.x+Extensibility+and+SPIs#extensions.
Object-Oriented Modeling Chapter 10 CSCI CSCI 1302 – Object-Oriented Modeling2 Outline The Software Development Process Discovering Relationships.
Ch 2 – Application Assembly and Deployment COSC 617 Jeff Schmitt September 14, 2006.
Slide 1 Extending Tuscany Raymond Feng Apache Tuscany committer.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Tuscany: a SOA framework Jeffrey Guo Accelrys, Inc.
Tu sca ny 1 The Tuscany Java SCA Runtime 20 August 2006.
SCA Bindings Simon Holdsworth Piotr Przybylski. Agenda n SCA Bindings Overview l Bindings TC Charter n Bindings l Web Services Binding l JMS Binding l.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Tuscany Runtime Architecture. Contents Overview An example Bootstrap kernel Process of composite application.
Tu sca ny 1 The Tuscany Project in the Apache Incubator and The Service Component Architecture Jeremy Boynes Simon Nash 28 June 2006.
ProActive components and legacy code Matthieu MOREL.
® IBM Software Group © 2004 IBM Corporation Developing an SOA with RUP and UML 2.0 Giles Davies.
Slide 1 Extending Tuscany Raymond Feng Apache Tuscany committer.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Slide 1 Extending Tuscany Raymond Feng Apache Tuscany committer.
FIPA Abstract Architecture London FIPA meeting January 24-29, 2000 from: TC-A members.
SCA Assembly Model Anish Karmarkar – Oracle Michael Rowley – BEA.
Service Component Architecture (SCA) Policy TC … Face to Face Agenda – Jan 24,
WSDL : Web Service Definition Language Dr. Yuhong Yan NRC-IIT-Fredericton Internet logic.
SCA and Java n SCA provides support for multiple Java-based component implementation types l Java POJOs (implementation.java) l Spring Beans (implementation.spring)
Chapter 3: Introducing the UML
Introduction to EJB. What is an EJB ?  An enterprise java bean is a server-side component that encapsulates the business logic of an application. By.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
U.S. General Services Administration George Thomas, GSA OCIO Chief Architect Line of Sight = Reuse.
.NET Mobile Application Development XML Web Services.
Service Component Architecture (SCA) Policy FrameWork V1.0 Ashok Malhotra – Oracle Anish Karmarkar – Oracle David Booz - IBM …
Model Driven Architecture MDA SE-548 Lale Doğan
1 Introduction to Service Component Architecture Feature Pack for WebSphere Application Server & SCA Tooling in RAD Mike Edwards and Sara Mitchell - IBM.
Apache Tuscany 2.x Domain/Node
OO Methodology OO Architecture.
Apache Tuscany Demo BigBank Example
Reusability 11/29/2018© 2006 ITT Educational Services Inc.
Chapter 20 Object-Oriented Analysis and Design
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
An Introduction to Software Architecture
Component-based Applications
Component Technology Bina Ramamurthy 2/25/2019 B.Ramamurthy.
Design Yaodong Bi.
Presentation transcript:

SCA Assembly Model Anish Karmarkar – Oracle Michael Rowley – BEA

What is SCA Assembly? n SCA Assembly has been alternately described as: l Vendor-, technology- and language-neutral representation of the composition of services into business solutions l Unified declarative model for describing and deploying service assemblies l Deployment descriptors on steroids l Component implementation technology for configuring and deploying other component implementation technologies n supports recursion of components to create hierarchical composition

Outline n Bigbank composite example n Java implementation example n Interaction models n Interfaces: local, remote, bidirectional, conversational n ComponentType n Recursive composition n Top-down design: constrainingType n Autowiring n Packaging & deployment n Reuse n Extensibility n Summary

Warehouse Service WarehouseComposite Warehouse Broker Component Warehouse Component EventLog Component Order Processing Service OrderProcessing Component EventLog Reference External Warehouse Reference Payments Component Payment Service AccountsComposite External Banking Reference Accounts Ledger Component Example SCA assembly

Bigbank Composite – multiple components, service, reference & property bigbank.accountcomposite AccountService Component Service AccountService Reference StockQuote Service AccountData Service Component Reference StockQuote Service

<binding.ws port=" wsdl.endpoint(StockQuoteService/StockQuoteServiceSOAP)"/> <binding.ws port=" wsdl.endpoint(AccountService/AccountServiceSOAP)"/> <composite xmlns=" targetNamespace=" name="bigbank.accountcomposite" > <reference name="AccountDataService" target="AccountDataServiceComponent/AccountDataService"/> EURO StockQuote bigbank.accountcomposite AccountService Component Service AccountService Reference StockQuote Service AccountData Service Component Reference StockQuote Service

Java Implementation Example: Service Interface package public interface AccountService { public AccountReport getAccountReport(String customerID); } Interface is callable remotely eg. as a Web service

Java Implementation Example – Implementation package org.example.services.account; import public class AccountServiceImpl implements AccountService { private String currency = "USD"; private AccountDataService accountDataService; private StockQuoteService stockQuoteService; public String AccountDataService StockQuoteService stockService) { this.currency = currency; this.accountDataService = dataService; this.stockQuoteService = stockService; } // end constructor... } Defines the service interface Defines a property “currency” Defines references “accountDataService” and “stockQuoteService ”

SCA Interaction Model n Synchronous & Asynchronous service relationships n Conversational services l stateful service interactions n Asynchronous support l “non-blocking” invocation l asynchronous client to synchronous service l callbacks

Interfaces: Local v. Remotable n Supports multiple components within a single process or separate processes n Local interface l Pass-by-reference l Tightly-coupled l Fine-grained n Remote interface l Pass-by-value (with pass-by-reference override) l Loosely-coupled l Coarse-grained n Java interface l Local: default l Remotable: annotation n WSDL portType/interface: always remote n ‘local’ attribute override on the element

Bidirectional Interfaces (Callbacks) n Useful for asynchronous messaging n Support for callbacks using Java interfaces <interface.java interface="services.invoicing.ComputePrice" callbackInterface="services.invoicing.InvoiceCallback"/> n Support for callbacks using WSDL portTypes/interfaces <interface.wsdl interface=" wsdl.interface(ComputePrice)" callbackInterface=" wsdl.interface(InvoiceCallback)"/>

Conversational Interfaces n Frees application programmer from conversation/correlation management n Imposes requirements on bindings n Interfaces marked as conversational using SCA Policy intent n Specific operations can be marked as “endsConversation” n WSDL extensions for “conversational” and “endsConversation”...

ComponentType n Describes component implementation type details l Services l References l Properties l Extensibility elements n Can be introspected from the implementation or specified in an XML sidefile l Typically will be introspected from the implementation l Component implementations may use annotations to specify componentType information n eg Java

Java Implementation Example: componentType <componentType xmlns=" xmlns:xsd="

Recursive Composition n Composites and Implementations look the same l services l references l properties l composites have associated ComponentType n “Recursive composition” = nesting of composites l composite can be a component implementation in a higher level composite l promotes reuse of assemblies l as component implementation l component can be implemented by “atomic” implementation or by composite

Implementing AccountDataService Using a Composite bigbank.accountcomposite AccountService Component Service AccountService Reference StockQuote Service AccountData Service Component bigbank.accountcomposite AccountService Component Service AccountService Reference StockQuote Service AccountData Service Component implements Service AccountDataService AccountDataLogging bigbank.accountdata

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

<composite xmlns=" targetNamespace=" name="bigbank.AccountData" > <reference name=“LoggingService" target=“LoggingServiceComponent"/> bigbank.AccountData Composite

bigbank.account Composite (recursion) <composite xmlns=" targetNamespace=" name="bigbank.accountcomposite" > <reference name="AccountDataService" target="AccountDataServiceComponent/AccountDataService"/> EURO

Top-Down Design: constrainingType n constrainingType l Implementation independent l Specifies the shape -- constraints in terms of services/references/properties l composites, components, componentType and implementations can be constrained using the “constrainingType” attribute l Allows an architect to specify constrainingTypes which can be used by developers as a template l SCA provides runtime validation of artifacts with its constrainingType

constrainingType Example EURO

Autowiring n Allows component references to be wired to component services automatically (without explicit wires) n Matches references to services based on compatible interfaces, bindings, policy intents/sets Payments Component Payment Service AccountsComposite External Banking Service Accounts Ledger Component Product Pricing Component Customer Account Component

Packaging and Deployment: Domains n Composites deployed, configured into SCA Domain l Defines the boundary of visibility for SCA l Typically an area of functionality controlled by single organization/division n E.g.: accounts n Configuration represented by virtual composite l potentially distributed across a network of nodes l contains components, services, references, wires l configured using composites n Composites make deployment simpler l individual composites created, deployed independently l may contain only wires or components or externally provided services or references n Abstract services provided for management of the domain

Packaging and Deployment: Contributions n Contributions hold artifacts available for use in the Domain n Package containing artifacts necessary for SCA l SCA defined artifacts n E.g.: composites, constrainingType, etc l Non-SCA defined artifacts n E.g.: WSDL, XML schema, Java classes, object code etc n Packaging must be hierarchical n Metadata included in the “META-INF” directory * n Interoperable packaging format: ZIP n Other formats possible: filesystem directory, OSGi bundle, JAR file

SCA Runtime Example SCA PHP Container Assigned to be hosted by SCA Java container Assigned to be hosted by SCA CPP container Runtime Topology Deployment Mapping Service Compositions SCA Domain bigbank.accountmanagement bigbank.stockquote SCA JEE ContainersSCA CPP Containers … SCA Java Containers SCA BPEL Container

Reuse in SCA n Inclusion n Recursive composition n Implementation reuse through configurable components n Reusable services through composite references

Extensibility in SCA n Designed for extensibility n Extensible artifacts: l Implementation types n l Interface types n l Binding types n

Assembly: Summary n SCA Assembly models systems composed of reusable services n A model for service-based system: l construction l assembly l deployment n Heterogeneity l Multiple languages l Multiple container technologies l Service access methods n Metadata driven

Questions? OpenCSA Member Section: Archived Presentations:

Additions to consider n Multiplicity n Overriding n Inclusion n Domain deployment ops (e.g. addToDomainComposite)