You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 29 Next »

This table is an attempt to capture the various requirements that I've gathered from browsing the SCA specs and discussions on the Tuscany dev list, and the work in-progress in the community.

I am hoping that it will help organize our requirements and discuss how we want to stage their implementation over our next milestones. It should also help new contributors understand who is working on what, and grab areas that need work.

The table is under construction (I just started with some requirements related to the SCA assembly PM) and I'm inviting everybody in our community to come help build that page with the requirements that they are aware of, and the features that they are interested in.

Feature area

Milestone

People working on it

Comments / description

 Assembly PM spec

 

 

 

Complex properties


Venkat

Add support to SCDL parsers, builders and factory configuration. Integrate with data bindings.

Pass by-value / by-reference


Venkat

Initial implementation almost in? Some cleanup necessary? Need to understand how to clone/copy data with different databindings, SDO, JAX-WS, and POJOs. Understand how to handle pointers across multiple parameters when copying.

Multiplicity

 

 

Support multiplicity constraints on references. Support multiple wires. Handle overrides. Investigate how to handle binding selection. Support for callbacks.

Naming constraints in a composite

 

Luciano (Tuscany-914)

Validate that service/reference/component names are unique inside a composite. Check the presence of SCDL includes.

Multi-valued properties


 

Add support to SCDL parsers, builders and factory configuration. Integrate with data bindings.

WSDL 2.0

 

 

Add support for WSDL 2.0 accross the board, runtime, WSDL/Java tools and WS binding.

Operation overloading (simple exact matching)


Rick

Change runtime service contract hashmap and invocation handling/dispatching. Adjust extensions to this. Match identical methods on ends of a wire.

Operation overloading (complete support)

 

 

Match and wire compatible methods, factor in different databindings, WSDL wrapping/unwrapping, and match invocation and actual parameters to a compatible method.

ComponentType side files

 

 

Partial support already in. Need to define overriding strategy when implementation and componentType metadata overlap.

Support for SCA contribution


Raymond,Luciano

Generic handling of SCA contributions and base plugin mechanism for loading/scanning artifacts. Allow a contribution and artifacts in it to be addressed by URI. Do not assume a fixed default.scdl file.

Filesystem based SCA contributions

 

Raymond,Luciano

Support free-form folder structure in a contribution. Support multiple SCDLs per contribution. Scan for SCDL and other artifacts under an SCA contribution.

JAR based SCA contributions


Raymond,Luciano

Support JAR contribution structure. Support multiple SCDLs per contribution. Scan for SCDL and other artifacts under an SCA contribution.

SCA includes

 

 

This does not seem complete, verify, in particular wiring across includes and support for nested includes.

Composite resolution (no recursion)

 

 

Register composites and find them by Qname within a contribution. Support references across contributions in domain level includes.

Composite resolution (recursive composition)

 

 

Resolve composites with nested composites. Support full recursion. Current support needs to be fixed, as each reference to a composite gets it reloaded/redefined.

XML property configuration in side files

 

 

Properties configured in an external XML file. Resolve the file location, load it. See if loading and xpath reference mechanism needs to be adjusted for this.

Ref/Service/Property config override (no recursion)

 

 

Support overriding of services/references/properties. Investigate overrides combined with multiplicity.

Ref/Service/Property config override (recursive)

 

 

Support overriding of services/references/properties in nested composites. Handle multiple overrides. Support additions vs overrides in the case of bindings. Investigate overrides combined with multiplicity.

Wiring with service/reference bindings

 

 

Support binding URIs. Then configuration of binding URI with wires. Then propagation of binding info from a service to a reference wired to it.

Support for business exceptions

 

Rick, Raymond

Distinguish handling of runtime exceptions vs business exceptions. Add support to invocation/dispatching mechanism + POJO implementations, bindings and databinding.

Context info in error reports

 

 

Across the board, need to provide application level context data (composite, component, service, reference etc.) with errors, to allow an app developer to understand what's wrong in his application. Without that he's left having to understand all the underlying middleware.

Minimum SCDL extensibility (non SCA namespaces)

 

 

Support additional bindings, implementation types, interface types, and policies from diff namespaces. Should already work for bindings and implementations. Need to check policies and interface types.

Complete SCDL extensibility as defined by the XSD

 

 

Will need changes to a number of loaders and builders.

Support for xsi:type in addition to global elements

 

 

Changes to most loaders or improvements to LoaderRegistry.

Support for various ordering of SCDL elements

 

 

Loaders depend on a specific order of elements in the SCDL files. Supporting other possible sequences will require changes in the loaders logic.

Autowire - local

 

 

Adjust to the spec, which now defines this at the assembly level, independent of the Java C&I.

Autowire - domain level

 

 

Support autowire in a domain, including components services and references, policy intents and compatible bindings.

Autowire extension point

 

 

Plugin mechanism to allow different autowire algorithms to be plugged in

SCDL validation, semantic constraints (obvious cases)

 

 

Only support the obvious/main semantic constraints. Separate tool to perform semantic validation of an assembly. Also needs to be invoked as part of deployment and/or loading at runtime.

SCDL validation, semantic constraints (complete)

 

 

Complete support for the spec. Separate tool to perform semantic validation of an assembly. Also needs to be invoked as part of deployment and/or loading at runtime.

Implementation / component matching

 

 

Make sure that an implementation matches the component that uses it. For example enforce wiring of required references.

Callback support

 

Ignacio

Combinations of sync and async. Determine which binding to use for a callback invocation.

Configured implementations

 

 

Configuration of component implementations in .componentType files or inlined in implementations (spec issue 8) and in component declarations. Resolve/merge when overlap between the three.

Promotion of Ref/ Services/ Properties (no recursion)

 

 

New promotion mechanism for services/references/properties. Service/reference/property definition on components. Handle promotion of already wired services and references.

Promotion of Ref/ Services/ Properties (recursive)

 

 

New promotion mechanism for services/references/properties. Service/reference/property definition on components. Handle promotion of already wired services and references.

Multiple bindings on services and refs

 

 

Basic support for multiple bindings is in. See how configuration overriding works with multiple bindings.

Ability to use and alter SCDL model at deployment

 

 

Add missing relationships to the SCDL logical model, independent of runtime context. Allow deployment tools to alter the model and write it back to XML.

Interchangeability of Java and WSDL

 

Ant,Rick

Build ServiceContract representation from Java or WSDL. Needs more work to understand combinations of SDO/JAXB/POJOs and wrapped/unwrapped. Add logic to wiring framework to match WSDL portTypes and Java interfaces.

Document limitations and deviations from the spec

 

 

Review the spec and document Tuscany limitations and differences with the SCA assembly spec.

 Java C&I spec

 

 

 

 

 

 

 

Conversational PM

 

 

 

Core support

 

Ignacio, looking for volunteer to take over

Lifecycle in. Persistence of conversation state in. Needs to support tran/recovery. Also need some redesign to avoid having to send/receive a routing path and play nicely with bindings.

Integration with bindings

 

Rick

Plugin mechanism to allow a binding to declare conv capability and support conversational. Maybe define a "conversational policy intent"

WS binding

 

Rick

Map conversational to the correct MEPs. Investigate how to flow conversation id. Use WS-addressing, message-id, relates-to etc.

Non-blocking PM

 

 

 

Core support

 

Ignacio, looking for volunteer to take over

No support for async over sync yet (see spec issue) but everything else seems to be there. I am concerned with how we represent callbacks and how their info flows between remote components

Integration with bindings

 

Ignacio, looking for volunteer to take over

Plugin mechanism to allow a binding to declare support for async and callback, MEPs and/or polling.

WS binding (short term/sync MEP)

 

Ignacio, looking for volunteer to take over

Dispatch call to a thread and continue to use a sync MEP. Will not support unsolicited callbacks. Issue: WSDL representation of callback vs Axis2 client and sync MEP.

SCA default binding

 

 

 

 

 

 

 

 JMS binding

 

 

 

 

 

 

 

WS binding

 

 

 

 

 

 

 

EJB binding

 

 

 

 

 

 

 

REST binding

 

 

 

 

 

 

 

 JSON-RPC binding

 

 

 

 

 

 

 

 Data binding support

 

Raymond

 

 

 

 

 

 Policy Intent framework

 

 

 





Transaction policy

 

 

 

 

 

 

 

Security policy

 

 

 

 

 

 

 

Reliability policy

 

 

 

 

 

 

 

Modular build

 

 

 

 

 

 

 

Packaging / deployment

 

 

 

 

 

 

 

Administration

 

 

 

 

 

 

 

Scenarios

 

 

 

 

 

 

 

Host runtimes

 

 

 

 

 

 

 

Spring component type

 

 

 

 

 

 

 

Javascript component type

 

 

 

 

 

 

 

Groovy component type

 

 

 

 

 

 

 

JRuby component type

 

 

 

 

 

 

 

BPEL component type

 

 

 

 

 

 

 

Function test suite

 

 

 

 

 

 

 

Integration test suite

 

 

 

 

 

 

 

Samples

 

 

 

 

 

 

 

Architecture documentation

 

 

 

 

 

 

 

User documentation

 

 

 

 

 

 

 

  • No labels