Tuscany: a SOA framework Jeffrey Guo Accelrys, Inc.

Slides:



Advertisements
Similar presentations
2 A bank application needs to access information from the customer database and integrate it with loan credit history information stored in a legacy database.
Advertisements

Siebel Web Services Siebel Web Services March, From
31242/32549 Advanced Internet Programming Advanced Java Programming
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
OpenCSA Member Section – Service Component Architecture 1 1 SCA Overview Sanjay Patil – SAP Mike Edwards - IBM.
Spring, Hibernate and Web Services 13 th September 2014.
CUSTOMER FOCUS COMMITMENT QUALITY PLATINUM PARTNER 1 Click to edit Master title style rewferwfff CUSTOMER FOCUS COMMITMENT QUALITY PLATINUM PARTNER 1 Oracle.
Transparent Robustness in Service Aggregates Onyeka Ezenwoye School of Computing and Information Sciences Florida International University May 2006.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
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.
Integrating SOA and the Application Development Framework Shaun O’Brien Principal Product Manager – Oracle JDeveloper / ADF.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
6/11/2015Page 1 Web Services-based Distributed System B. Ramamurthy.
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
SOA Reference Model Generic Presentation DRAFT: Not approved by the OASIS SOA RM TC.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Oracle SOA Suite 11g.
Web Services Overview and Trends David Purcell MnSCU OoC IT.
SOA, BPM, BPEL, jBPM.
ESB Guidance 2.0 Kevin Gock
INTRODUCING SCA Byungwook Cho Nov.2007.
1 3. Implementing Web Services 1.Create SOAP proxy interfaces and WSDL based service descriptions 2.Register/publish services 3.Stores service descriptions.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Slide heading: 28pt Arial Regular, light blue R204 | G204 | B255 Maximum length: 2 lines Slide body: 18pt Arial Regular, white Square bullet color: green.
© 2007 by «Author»; made available under the EPL v1.0 | Date | Other Information, if necessary Eclipse SOA Tools Platform Project Eric Newcomer IONA Technologies.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 10: Service Component Architecture.
Enterprise Java Beans Part I Kyungmin Cho 2001/04/10.
® How to Build IBM Lotus Notes Components for Composite Applications 정유신 과장 2007 하반기 로터스 알토란.
SCA Assembly Model Anish Karmarkar – Oracle Michael Rowley – BEA.
XML Registries Source: Java TM API for XML Registries Specification.
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 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
1 UNIT –II Architecting Web Service. 2 Why SOA? – business point of view  Information Technology (IT) workers face many challenges, including: Limited.
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.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
XML and Web Services (II/2546)
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.
INT-9: Implementing ESB Processes with OpenEdge ® and Sonic ™ David Cleary Principal Software Engineer.
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
Application Ontology Manager for Hydra IST Ján Hreňo Martin Sarnovský Peter Kostelník TU Košice.
Slide 1 Extending Tuscany Raymond Feng Apache Tuscany committer.
Slide 1 Extending Tuscany Raymond Feng Apache Tuscany committer.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
SCA Assembly Model Anish Karmarkar – Oracle Michael Rowley – BEA.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
1 Distributed System using J2EE. 2 What is J2EE?  J2EE (Java2 Enterprise Edition) offers a suite of software specification to design, develop, assemble.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
IBM Proof of Technology Discovering the Value of SOA with WebSphere Process Integration © 2005 IBM Corporation SOA on your terms and our expertise WebSphere.
EJB Enterprise Java Beans JAVA Enterprise Edition
Student SOA Lab Framework for development and testing of information systems Peter Leijten TU\e.
SOA Blueprints Learning Best Practices and Sample Applications for SOA Miko Matsumura.
1 Introduction to Service Component Architecture Feature Pack for WebSphere Application Server & SCA Tooling in RAD Mike Edwards and Sara Mitchell - IBM.
Sabri Kızanlık Ural Emekçi
Distribution and components
Tuscany Java SCA Architecture
Inventory of Distributed Computing Concepts and Web services
Service-centric Software Engineering
Apache Tuscany Demo BigBank Example
Inventory of Distributed Computing Concepts
An Introduction to Software Architecture
Distributed System using Web Services
Distributed System using Web Services
Presentation transcript:

Tuscany: a SOA framework Jeffrey Guo Accelrys, Inc.

Agenda SOA and Tuscany SCA SDO Latest development in SCA (Alex)

Agenda SOA and Tuscany SCA SDO Latest development in SCA (Alex)

SOA this, SOA that SOA is a concept Coarse-grained business components Well defined interfaces and contracts Loose coupling between services Business oriented, not technology focused SOA is not new: Message oriented systems RPC infrastructures

What is Tuscany? Designed for SOA! A robust infrastructure that simplifies the development of SOA-based systems Implementation of specs from Open Service Oriented Architecture ( collaborationwww.osoa.org

Apache Tuscany: Underlying Technologies Service component architecture (SCA): a model for the creation of service components in a wide range of languages a model for assembling service components into a business solution Service data object (SDO) : consistent means of handling data within applications a way of unifying data handling for databases and for services Data Access Service (DAS)

Service Component Architecture: Build SOA in Two Steps Implementation Programming languages: Java, C++, PHP, BPEL Bindings: web service, message, CORBA/IIOP Policy & Profile: security, transaction, RM Assembly Aggregation of components through wiring of references to services

Agenda SOA and Tuscany SCA SDO Latest development in SCA (Alex)

Service Component Architecture

SCA: Component Configured/instantiated runtime instance of an implementation Provide and consume services Implementation technologies: Java BPEL C++ …(extensibility mechanism)

Service Component Architecture

SCA: Service Provides interfaces for externally accessible services of an implementation Defined in xxx.composite file May specify binding Types: Remotable service: loosely-coupled/pass-by-value Local service: tightly-coupled/pass-by-ref

Service Component Architecture

SCA: Reference Consumes interfaces of externally accessible services Defined in xxx.composite file May specify binding

Service Component Architecture

SCA: Property Allows for configuration of an implementation An implementation can have zero or more properties Each property has a type, simple/complex AValue InterestingURI … …

Service Component Architecture

SCA: ComponentType Component type: Configurable aspects of an implementation A contract honored by an implementation Dependency injection: Service to be offered References to other services Properties

Discover ComponentType Code annotation “xxxx.componentType” file

ComponentType by external definition USD

ComponentType by annotation package public interface AccountService{ public AccountReport getAccountReport(String customerID); }

ComponentType by annotation public class AccountServiceImpl implements AccountService private String currency = private AccountDataService private StockQuoteService stockQuoteService; … }

Component ~ ComponentType ~ Implementation

Service Component Architecture

SCA: Interface Local and remotable interfaces Remotable No method overloading in remotable interface Coarse-grained/loosely coupled Data exchange by-value Local Allows method overloading Fine-grained/tightly coupled Data exchange by-reference Bidirectional interfaces Models peer-to-peer business relationship <interface.java interface="services.invoicing.ComputePrice" callbackInterface="services.invoicing.InvoiceCallback"/> Conversational interfaces

SCA: Binding Used by Services and References to define access mechanism Service: defines access mechanism for calling clients Reference: defines access mechanism for calling out Configured and managed independently of the implementation code Types of binding: SCA (non-interoperable) WS EJB Additional types by extensibility mechanism Local invocations do not require bindings

Binding configuration example <binding.ws port=" wsdl.endpoint(MyValueService/MyValueServiceSOAP)"/> … …

SCA: Wires Connect references to services Within a composite: Wire source: component reference, composite service Wire target: component service, composite reference Define wire: Configure references of components or composites Define wire element within the composite element

Wire definition (I) Configure references of components or composites EURO StockQuoteService

Wire definition (II) Define wire element within the composite element Source: / Target: / * wire-source-URI wire-target-URI

Rules for wiring: Both source and target interfaces are remotable or local Target interface methods are the same as/superset of source interface methods Method signatures are compatible Order of the input and output types are the same Faults and exceptions are the same

No questions asked! Interface query not allowed Proxies to allow for additional interfaces

Service Component Architecture

Dependency injection via Component configuration Hiding details of service location and instantiation Service to be offered References to other services Properties Service invocation is invisible to business logic Access mechanism could evolve over time Multiple service access mechanism could be used

Component configuration example... EURO CustomerService StockQuoteComponent...

Component dependency injection example public class AccountServiceImpl implements AccountService private AccountDataService accountDataService; public AccountReport getAccountReport(String customerID) { … SavingsAccount savingsAccount = accountDataService.getSavingsAccount(customerID); … }

Service Component Architecture

SCA: Composite Basic unit of composition within an SCA system Defined by.composite file Assembles SCA elements in logical groupings Service* Component* Reference* Wire* Included composite* Deployment: An implementation in higher level composites An inclusion into another composite

Composite as component implementation example

Included composite example

Service Component Architecture

SCA extension model Assembly extension model supports: Interface Implementation Binding Based on XML schema substitution groups Group heads: interface, implementation and binding <element name="my-interface-extension" type="tns:my-interface-extension-type" substitutionGroup="sca:interface"/>...

Agenda SOA and Tuscany SCA SDO Latest development in SCA (Alex)

Service Data Object MyValueModule SCA MyValue SCA CustomerInfo Export MyValue Import StockQuote SDO  Unified & consistent data access to heterogeneous data sources  Disconnected client programming model  Simplified programming model for the application programmer  Enable tools and frameworks to work consistently across heterogeneous data sources

What’s a Data Object? The core of SDO framework Generic representation of business object Holds data in properties A property has one or many values Not tied to any specific persistent storage mechanism

Data object categories Basic getType().getProperties() get(Property) Open Allows for open content getInstanceProperties() Sequenced Order across properties

Data Graph An envelope for a graph of data objects with a ChangeSummary Created by DAS

Mapping Data Object to XML

SDO Generated data API Dynamic data API

Generated Data API public interface Student { String getName(); void setName(String name); int getID(); void setID(int id); } Student p = (Student) dataFactory.create(Student.class); p.setName("John"); p.setID(12345); System.out.println(p.getName());

Dynamic Data API DataObject o = dataFactory.create(tns, “Student"); o.set("name", "John"); o.set(“id", 12345); System.out.println(o.get("name"));

Data Access Service (DAS) Represents a standard way to get access to a data graph Load data graph from a store Save a data graph back into a store

Disconnected data architecture The client remains disconnected from the DAS expect when reading or writing a data graph

Summary Tuscany (SCA/SDO): Simplified component development Simplified assembly and deployment Protection of business logic from low level technology (middleware API) One model for data across the enterprise SOA patterns (disconnected clients, data services)

Reference links SCA/SDO collaboration Tuscany project SCA specs SDO specs

Agenda SOA and Tuscany SCA SDO Latest development in SCA (Alex)