Tu sca ny 1 The Tuscany Java SCA Runtime 20 August 2006.

Slides:



Advertisements
Similar presentations
Axis2 WSDL- Code Generation. Contents  Scope and Goals of the discussion.  Anticipated runtime behavior.  Proposed Architecture.  Change request for.
Advertisements

Tu sca ny 1 The Tuscany Java Recursive Core: Architecture Update 5 June 2006.
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
A DAPT IST Replication Framework: Progress Report Vance Maverick University of Bologna Dec. 11, 2003.
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.
SOA with Progress Philipp Walther Consultant. © 2007 Progress Software Corporation2 Agenda  SOA  Enterprise Service Bus (ESB)  The Progress SOA Portfolio.
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
Copyright W. Howden1 Lecture 19: Intro to O/O Components.
WebDynpro for ABAP Short introduction.
Introduction to EJB INFORMATICS ENGINEERING – UNIVERSITY OF BRAWIJAYA Eriq Muhammad Adams J
Introduction SOAP History Technical Architecture SOAP in Industry Summary References.
INTRODUCING SCA Byungwook Cho Nov.2007.
Configuration Management and Server Administration Mohan Bang Endeca Server.
1 J2EE Components. 2 Application Servers relieve the programming burden for business distributed components. They provide support for system level services.
1 3. Implementing Web Services 1.Create SOAP proxy interfaces and WSDL based service descriptions 2.Register/publish services 3.Stores service descriptions.
Introducing Axis2 Eran Chinthaka. Agenda  Introduction and Motivation  The “big picture”  Key Features of Axis2 High Performance XML Processing Model.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 10: Service Component Architecture.
Parsley Introduction Kui Huang Oct. 13, Topics Background Dependency Injection Object Lifecycle Message Bus Sample FW Extensions.
Replication & EJB Graham Morgan. EJB goals Ease development of applications –Hide low-level details such as transactions. Provide framework defining the.
Enterprise Java Bean Matt. 2 J2EE 3 J2EE Overview.
EJB Framework.  As we know, EJB is the center of the J2EE architecture that provides a sturdy framework for building enterprise applications. The major.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Agenda 1.Implementation of CustomerService. CustomerService wrapper SOAP → ESB internal format Abstract → Concrete XML syntax ESB internal format → HTTP.
SCA Assembly Model Anish Karmarkar – Oracle Michael Rowley – BEA.
Introduction to ESBs: Mule UC San Diego CSE 294 November 14, 2008 Barry Demchak.
Tu sca ny 1 Extending The Tuscany Java SCA Runtime 21 August 2006.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
Apache Synapse The small print
Slide 1 Extending Tuscany Raymond Feng Apache Tuscany committer.
SCALABLE EVOLUTION OF HIGHLY AVAILABLE SYSTEMS BY ABHISHEK ASOKAN 8/6/2004.
Databases JDBC (Java Database Connectivity) –Thin clients – servlet,JavaServer Pages (JSP) –Thick clients – RMI to remote databases –most recommended way.
Tuscany: a SOA framework Jeffrey Guo Accelrys, Inc.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Introduction to Spring Remoting Simplifying.
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.
Grid Services I - Concepts
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.
Dynamic and Selective Combination of Extension in Component-based Applications Eddy Truyen, Bart Vanhaute, Wouter Joosen, Pierre Verbaeten, Bo N. Jørgensen.
Jini Architecture Introduction System Overview An Example.
Eric Tryon Brian Clark Christopher McKeowen. System Architecture The architecture can be broken down to three different basic layers Stub/skeleton layer.
Axis2 - Overview. Agenda  What is already there Overall Architecture Core AXIOM WSDL Deployment Client API  What is yet to come Encoding – Pluggable.
ProActive components and legacy code Matthieu MOREL.
Slide 1 Extending Tuscany Raymond Feng Apache Tuscany committer.
1 Introduction to Servlets. Topics Web Applications and the Java Server. HTTP protocol. Servlets 2.
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.
JWire Concepts AComposite foo : Foobar : Bar Components are Java objects. Components play roles in one or more interaction protocols. Roles are named and.
SCA Assembly Model Anish Karmarkar – Oracle Michael Rowley – BEA.
SCA and Java n SCA provides support for multiple Java-based component implementation types l Java POJOs (implementation.java) l Spring Beans (implementation.spring)
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
.NET Mobile Application Development XML Web Services.
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
Google Code Libraries Dima Ionut Daniel. Contents What is Google Code? LDAPBeans Object-ldap-mapping Ldap-ODM Bug4j jOOR Rapa jongo Conclusion Bibliography.
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED INTERSTAGE BPM ARCHITECTURE BPMS.
Ext JS - Direct Bridging The Gap A DMSBT Presentation By Timothy Chandler.
Apache Tuscany 2.x Domain/Node
Web Programming Developing Web Applications including Servlets, and Web Services using NetBeans 6.5 with GlassFish.V3.
Overall Architecture and Component Model
Tuscany Java SCA Architecture
Presented by Jinpeng Zhou
Apache Tuscany Demo BigBank Example
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
Objectives In this lesson you will learn about: Need for servlets
Creating a Distributed System with Remote Procedure Calls and Web Services Ch.5 B.Ramamurthy 2/17/2019 B.Ramamurthy.
JINI ICS 243F- Distributed Systems Middleware, Spring 2001
Introduction to Web Services
Distributed System using Web Services
Presentation transcript:

tu sca ny 1 The Tuscany Java SCA Runtime 20 August 2006

tu sca ny 2 Agenda Overview Architecture Runtime artifacts Assembly processing Bootstrap Wiring

tu sca ny 3 Java Runtime Is an SCA implementation Specs at Provides infrastructure for creating service assemblies Heterogeneous services connected through wires Containers for managing service instances and lifecycle Spring, Java POJOs, Groovy Infrastructure for wiring services together Apply qualities of service Sync, non-blocking, callbacks, conversations Framework for mediation Dynamic re-wiring Embeddable in a variety of host environments Standalone, J2EE, OSGi, etc. Leverage qualities of service provided by host Transactions, clustering, fail-over

tu sca ny 4 Project Structure API SPI HOST-API Core Base interfaces for interacting with the runtime (eventually will contain management) API for the runtime to interact with its host environment SPI and base classes for extending the runtime The runtime implementation WSDL Important Extensions Launcher Test

tu sca ny 5 Agenda Overview Architecture Runtime artifacts Assembly processing Bootstrap Wiring

tu sca ny 6 Basic Runtime Artifacts Component Basic unit of executable code Offer services and have references Service A contract for component clients consisting of 0..n operations Services may be local or remote Reference A dependency on a service Component references are wired to services by the runtime Service Reference Wire Component

tu sca ny 7 The Runtime is Recursive Components may be Atomic or Composite Composite components contain 0..n components Composite services are exposed over 1..n bindings (e.g. SOAP/HTTP, JMS, RMI) Composite references have 1..n bindings and may target A service exposed by another composite A service outside the SCA system, e.g. “Google search” A composite may contain just a service wired to a references (mediation) Reference Service Composite Component Composite or Atomic Components

tu sca ny 8 Runtime Capabilities The runtime is responsible for wiring at the atomic and composite levels Extensions “plug into” this wiring infrastructure Component implementation types SCA Java, Spring, Groovy, JavaScript Binding extensions Web services, JMS, RMI, etc. Enables heterogeneous wiring

tu sca ny 9 Assembly Processing The runtime processes service assemblies Serialized using SCA XML vocabulary, SCDL, but can take other forms The load phase processes SCDL and creates an in-memory model The build phase evaluates the model and produces corresponding runtime artifacts (e.g. components, services, references) The connect phase wires references to services loadbuild connect

tu sca ny 10 Deployment initiates evaluation of an assembly and wiring Deploy composites or single artifacts (component, service or reference) Deployment Deployer Loads artifacts to create configuration model Loader Builder Connector Creates components, service,s and references from model Connects wiring between references and services Coordinates deployment

tu sca ny 11 Configuration Loading Loader StAXElement Loader Loads XML elements from StAX stream ComponentType Loader Loads componentType for an implementation

tu sca ny 12 Component Type Loading Loads the component type definition for a specific implementation How it does this is implementation-specific May load XML sidefile (location set by implementation) May introspect an implementation artifact (e.g. Java annotations) … or anything else Composite ComponentType Loader Load SCDL from supplied URL Extract and load SCDL from composite package POJO ComponentType Loader Introspect Java annotations Uses a pluggable “annotation processing” framework to introspect Java classes

tu sca ny 13 Annotation Processing Pluggable annotation processors Ability to add new annotations Extend Magic Property and Reference Ability to extend the core programming model e.g., JPA

tu sca ny 14 Building Builder creates a runtime component from the configuration model Builder for each implementation type Builder for each binding type (service or reference component) Runtime component manages: Implementation instances Inbound and Outbound wires Every implementation is likely to be different Different artifacts, programming model, … Composite implementation recurses for contained components Re-invokes the Builder for every child

tu sca ny 15 Bootstrap Bootstrap process is controlled by Host environment Default process implemented in DefaultBootstrapper Create Runtime Component Create Bootstrap Deployer Deploy System Assembly Locate Application Assemblies Locate System Assembly Deploy Application Assembly Start Server

tu sca ny 16 Wiring To understand how wiring works, we need to detail how Components function in the system… Start with Atomic Components and then discuss Composite Components

tu sca ny 17 Atomic Component AtomicComponent: the most basic component form Corresponds to the spec concept Offers services, has references and properties Implementation types e.g. Java, XSLT, etc. Are wired Have properties Outbound wireInbound wire Properties

tu sca ny 18 Implementation Instances Atomic Components have implementation instances Instances are associated with a scope: e.g. request, conversation, module A SCDL entry defines a Component … association instances of “FooImpl” Foo component

tu sca ny 19 Atomic Component Instance Management Atomic components use a ScopeContainer to manage implementation instances Module, HTTP Session, Request, Stateless ScopeContainers track implementation instances by scope id and the AtomicComponent instance identity Instances are stored in an InstanceWrapper which is specific to the component implementation type (e.g. PojoInstanceWrapper.java) ScopeContainer AtomicComponent Collection of instance wrappers keyed by scope id and collection keyed by AtomicComponent

tu sca ny 20 Component Implementation Instance Creation ScopeContainer getInstance(this) no instance cached createInstance return instance track and enqueue instance (for destruction) return instance AtomicComponent Instantiate and inject the instance (which will recurse for dependents)

tu sca ny 21 Component Wiring Component references are connected to services through wires Two sides InboundWire - handles the source side of a wire, including policy OutboundWire - handles the target side of a wire, including policy The runtime connects inbound and outbound wires, performing optimizations if possible Inbound and outbound wires may be associated with different service contracts Different implementation types “Standard” wires contain invocation chains that have Interceptors and MessageHandlers that perform some form of mediation (e.g. policy) Other wire types exist that, for example, do not perform mediations Outbound wireInbound wire

tu sca ny 22 Invocation Chains A wire has an InvocationChain per service operation An InvocationChain may have Interceptors - “Around-style” mediation One-way MessageHandlers Component implementation instances access a wire through a WireInvocationHandler associated with a reference WireInvocationHandlers may (or may not depending on the component type) be fronted by a proxy WireInvocationHandlers dispatch an invocation to the correct chain A wire has a TargetInvoker that is created from the target side AtomicComponent or Reference and is stored on the source wire invocation handler. The TargetInvoker is resposnible for dispatching the request to the target instance when the message hits the end of the target invocation chain. Invocation chains

tu sca ny 23 Invocation Overview An invocation is dispatched to the WireInvocationHandler The WireInvocationHandler looks up the correct InvocationChain It then creates a message, sets the payload, sets the TargetInvoker, and passes the message down the chain When the message reaches the end of the chain, the TargetInvoker is called, which in turn is responsible for dispatching to the target Having the TargetInvoker stored on the outbound side allows it to cache the target instance when the wire source has a scope of equal or lesser value than the target (e.g. request-->module) WireInvocationHandler Invocation TargetInvoker associated with the operation Payload Dispatch on target

tu sca ny 24 Wires and Implementation Instances The runtime provides components with InboundWires and OutboundWires InvocationChains are held in component wires and are therefore stateless Allows for dynamic behavior such as introduction of new interceptors or re-wiring WireInvocationHandler Implementation instance Proxy Outboundwire held by component InboundWire associated with a service and held by component TargetInvoker may need to resolve the target instance. This may be done by referencing the ScopeContainer

tu sca ny 25 Invocation Detail Outbound Interceptor Chain TargetInvoker Outbound Request Channel 1 Inbound Request Channel Request 2 Inbound Response Channel Outbound Response Channel 6 7 Response RequestResponseInterceptor (RRI) dispatches to the outbound request channel (OReqC) 2.RRI dispatches to the inbound request channel (IReqC) 3.MessageDispatcher dispatches to the inbound interceptor chain 4.TargetInvokerInterceptor pulls the TargetInvoker from the message and dispatches to it 5.TargetInvoker dispatches to the target (implementation instance or to some transport) 6.RRI dispatches to the inbound response channel (IRespC) 7.RRI dispatches to the outbound response channel (ORespC) 8.The response is returned back up the outbound channel to the client Inbound Interceptor Chain Note the runtime may optimize invocations not to call interceptors or handlers and possibly dispatch directly to a target (or any combination thereof)

tu sca ny 26 Composite Component CompositeComponent: a component which contains child components Corresponds to the spec concept Offers services, has references over bindings Has properties Has inbound and outbound wires associated with Services and References Implementations deal with the specifics of a type, e.g. Spring Reference Service Properties

tu sca ny 27 A Composite Example Expose a Spring Bean through a service with a SOAP/HTTP binding and using a reference bound over SOAP/JMS Spring application.xml does not need to be modified Preserves Spring programming model Allows existing Spring applications to be wired in an assembly Services and references are contributed by SCA bindings (e.g. Celtix) Reference Service SpringCompositeComponent Spring Bean

tu sca ny 28 Composite Wiring Services and references are “twist-ties” for inbound and outbound wires Services have connected InboundWire/ OutboundWire pairs OutboundInbound OutboundInbound References have connected InboundWire/ OutboundWire pairs Inbound Outbound CompositeComponent AtomicComponent

tu sca ny 29 Composite Reference Invocations When a message reaches the end of the outbound reference wire, the TargetInvoker dispatches over a transport In contrast to Component-->Component invocations, where the TargetInvoker would resolve the target implementation instance OutboundInboundOutbound Invoke on transport AtomicComponentComposite Reference