OW2 FraSCAti SCA Architecture

OW2 FraSCAti is itself implemented as an SCA application composed of 13 SCA composites, for a total of 91 SCA components. Then OW2 FraSCAti is the biggest SCA application to our knowledge.

Most of OW2 FraSCAti features are often implemented by just one or two SCA components. Following figures show all SCA composites and their SCA components, aka all OW2 FraSCAti features, part of the OW2 FraSCAti SPL. But don't forget that most of the OW2 FraSCAti features are optional and could be selected "à la carte". Then an SCA component is present if and only if the associated feature is selected, aka the Maven module implementing it is present in the classpath.

org.ow2.frascati.FraSCAti SCA composite

Following figure shows the root OW2 FraSCAti's SCA composite named org.ow2.frascati.FraSCAti.

This composite contains nine SCA components implementing all root features of the OW2 FraSCAti feature model:

  • sca-parser implements feature ScaParser,

  • assembly-factory implements feature AssemblyFactory,

  • component-factory implements feature ComponentFactory,

  • binding-factory implements feature BindingFactory,

  • explorer implements feature Explorer,

  • fscript implements feature Fscript,

  • jmx implements feature JMX, and

  • remote implements feature RemoteManagement.

Each of these SCA components is itself implemented as an SCA composite.

org.ow2.frascati.Services SCA composite

The component services is implemented by the SCA composite org.ow2.frascati.Services. This composite is currently empty as shown by following figure.

org.ow2.frascati.parser.Parser SCA composite

The component sca-parser is implemented by the SCA composite org.ow2.frascati.parser.Parser.

This composite contains five SCA components:

  • component-type-parser to parse SCA component type descriptors (i.e., .componentType files),

  • composite-parser to parse SCA composite descriptors (i.e., .composite files),

  • constraining-type-parser to parse SCA constraining type descriptors (i.e., .constrainingType files),

  • contribution-parser to parse SCA contribution descriptors (i.e., META-INF/sca-contribution.xml files), and

  • sca-parser is a generic parser for all SCA descriptors.

org.ow2.frascati.parser.CompositeParser SCA composite

The component composite-parser is implemented by the SCA composite org.ow2.frascati.parser.CompositeParser. This composite contains eleven SCA components.

org.ow2.frascati.parser.ScaParser SCA composite

The component sca-parser is implemented by the SCA composite org.ow2.frascati.parser.ScaParser.

This composite contains six SCA components implementing six OW2 FraSCAti features:

  • sca-parser implements feature Metamodels,

  • sca-metamodel implements feature MM_SCA,

  • sca-metamodel-frascati implements feature MM_FraSCAti,

  • sca-metamodel-tuscany implements feature MM_Tuscany,

  • sca-metamodel-upnp implements feature MM_UPnP, and

  • sca-metamodel-native implements feature MM_Native.

org.ow2.frascati.assembly.factory.AssemblyFactory SCA composite

The component assembly-factory is implemented by the SCA composite org.ow2.frascati.assembly.factory.AssemblyFactory.

This composite contains forty SCA components implementing twenty seven OW2 FraSCAti features:

  • assembly-factory implements feature AssemblyFactory,

  • sca-composite processes <composite .../> XML elements,

  • sca-composite-service processes composite <service .../> XML elements,

  • sca-composite-reference processes composite <reference .../> XML elements,

  • sca-composite-property processes composite <property .../> XML elements,

  • sca-wire processes composite <wire .../> XML elements,

  • sca-component processes composite <component .../> XML elements,

  • sca-component-service processes component <service .../> XML elements,

  • sca-component-reference processes component <reference .../> XML elements,

  • sca-component-property processes component <property .../> XML elements,

  • sca-implementation implements feature Implementations and processes <implementation .../> XML elements,

  • sca-implementation-composite implements feature Implementation_Composite and processes <implementation.composite .../> XML elements,

  • sca-implementation-java implements feature Implementation_Java and processes <implementation.java .../> XML elements,

  • sca-implementation-bpel implements feature Implementation_BPEL and processes <implementation.bpel .../> XML elements,

  • sca-implementation-spring implements feature Implementation_Spring and processes <implementation.spring .../> XML elements,

  • frascati-implementation-fractal implements feature Implementation_Fractal and processes <implementation.fractal .../> XML elements,

  • frascati-implementation-osgi implements feature Implementation_OSGi and processes <implementation.osgi .../> XML elements,

  • frascati-implementation-script implements feature Implementation_Script and processes <implementation.script .../> XML elements,

  • frascati-implementation-resource implements feature Implementation_Resource and processes <implementation.resource .../> XML elements,

  • sca-interface implements feature Interfaces and processes <interface .../> XML elements,

  • sca-interface-java implements feature Interface_Java and processes <interface.java .../> XML elements,

  • sca-interface-wsdl implements feature Interface_WSDL and processes <interface.wsdl .../> XML elements,

  • sca-interface-native implements feature Interface_Native and processes <interface.native .../> XML elements,

  • sca-binding implements feature Bindings and processes <binding .../> XML elements,

  • sca-binding-sca implements feature Binding_SCA and processes <binding.sca .../> XML elements,

  • frascati-binding-ws implements feature Binding_WS and processes <binding.ws .../> XML elements,

  • frascati-binding-jms implements feature Binding_JMS and processes <binding.jms .../> XML elements,

  • frascati-binding-rmi implements feature Binding_JavaRMI and processes <binding.rmi .../> XML elements,

  • frascati-binding-http implements feature Binding_HTTP and processes <binding.http .../> XML elements,

  • frascati-binding-jsonrpc implements feature Binding_JSON_RPC and processes <binding.jsonrpc .../> XML elements,

  • frascati-binding-rest implements feature Binding_REST and processes <binding.rest .../> XML elements,

  • frascati-binding-upnp implements feature Binding_UPnP and processes <binding.upnp .../> XML elements,

  • frascati-binding-jna implements feature Binding_JNA and processes <binding.jna .../> XML elements,

  • sca-property-type-java implements feature Property_Java,

  • sca-property-type-xsd implements feature Property_XSD,

  • sca-property-type-jaxb implements feature Property_JAXB,

  • bpel-engine is the BPEL engine used,

  • wsdl-compiler is the WSDL to Java compiler used,

  • jnaerator is the JNA generator used, and

  • servlet-manager manages Servlets.

org.ow2.frascati.component.factory.ComponentFactory SCA composite

The component component-factory is implemented by the SCA composite org.ow2.frascati.component.factory.ComponentFactory.

This composite contains five SCA components implementing five OW2 FraSCAti features:

  • factory implements feature MembraneFactories,

  • tinfi-oo implements feature MF_Tinfi,

  • osgi-provider implements feature MF_OSGi,

  • julia implements feature MF_Julia, and

  • juliac implements feature MembraneGeneration.

org.ow2.frascati.component.factory.juliac.Juliac SCA composite

The component juliac is implemented by the SCA composite org.ow2.frascati.component.factory.juliac.Juliac.

This composite contains five SCA components implementing six OW2 FraSCAti features:

  • juliac implements both features MembraneGenerators and JavaCompilers,

  • tinfi-oo implements feature MG_Tinfi,

  • osgi implements feature MG_OSGi,

  • jdk6-compiler implements feature JDK6, and

  • jdt-compiler implements feature JDT.

org.ow2.frascati.binding.factory.BindingFactory SCA composite

The component binding-factory is implemented by the SCA composite org.ow2.frascati.binding.factory.BindingFactory.

This composite contains two SCA components implementing the OW2 FraSCAti feature BindingFactory.

org.ow2.frascati.explorer.Explorer SCA composite

The component explorer is implemented by the SCA composite org.ow2.frascati.explorer.Explorer.

This composite contains two SCA components implementing the OW2 FraSCAti feature Explorer.

org.ow2.frascati.fscript.FScript SCA composite

The component fscript is implemented by the SCA composite org.ow2.frascati.fscript.FScript.

This composite contains two SCA components implementing the OW2 FraSCAti feature Fscript.

org.ow2.frascati.jmx.Jmx SCA composite

The component jmx is implemented by the SCA composite org.ow2.frascati.jmx.Jmx.

This composite contains one SCA component implementing the OW2 FraSCAti feature JMX.

org.ow2.frascati.remote.Remote SCA composite

The component remote is implemented by the SCA composite org.ow2.frascati.remote.Remote.

This composite contains one SCA component implementing the OW2 FraSCAti feature RemoteManagement.

Introspecting OW2 FraSCAti SCA Architecture

As OW2 FraSCAti is implemented as an SCA composite and SCA components, then OW2 FraSCAti could be introspected and reconfigured at runtime via its own features: OW2 FraSCAti Explorer, OW2 FraSCAti FScript, OW2 FraSCAti JMX, and OW2 FraSCAti Remote API.

Following figure shows the introspection of a possible OW2 FraSCAti configuration with OW2 FraSCAti Explorer:

Following figure shows the introspection of a possible OW2 FraSCAti configuration with JConsole: