Download presentation
Presentation is loading. Please wait.
Published byArlene Mills Modified over 9 years ago
1
Tuscany Runtime Architecture
2
Contents Overview An example Bootstrap kernel Process of composite application
3
Overview Extensions : 1.Component implementation: BPEL, java etc. 2.Binding: SOAP/HTTP web services, JSON-RPC, and RMI. 3.Interface Type: Java interfaces and WSDL 4.Databinding: SDO, JAXB, and AXIOM
4
Extension Point Registry(EPR) Extension: achieving extensibility Extension Point is the bridge between Tuscany kernel and extensions
5
Extension Point Registry(EPR) e.g., ContributionScanner FolderContributionScanner JarContributionScanner ZipContributionScanner
6
Extension Point Registry(EPR) Objects implemented ContributionScanner interface scan specific package and then build an artifact list – e.g., JarContributionScanner for resolving Jar contributions Each ContributionScanner object registers itself with Tuscany runtime via ContributionScannerExtensionPoint
7
Extension Point Registry(EPR) Extension Point Registry(EPR) holds a list of all the extension points EPR is used to look up extension point //create EPR ExtensionPointRegistry registry = new Default ExtensionPointRegistry (); //look up ContributionScannerExtensionPoint factories = registry.getExtensionPoint(ContributionScannerExtensionPoint.class);
8
An example An online fruit store
9
Bootstrap kernel Bootstrap sequence
10
Create Extension Point Registry Instantiate ExtensionPointRegistry //Instantiate EPR ExtensionPointRegistry registry = new Default ExtensionPointRegistry ();
11
Create Extension Point Registry Create necessary Extension Point – UtilityExtensionPoint – ModelFactoryExtensionPoint – ProxyFactoryExtensionPoint //look up UtilityExtensionPoint UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class);
12
Discover Module Activators Load ModuleActivator related configuration files in “/META-INF/services/”
13
Discover Module Activators Previous classes implemented ModuleActivator
14
Start Module Activators Call ModuleActivator.start() to start services e.g., CorbaRuntimeModuleActivator – Register CorbaHostExtensionPoint – Start Corba server
15
Create Contribution Service Instantiate ContributionServiceImpl
16
Create Scope Registry Scope – Stateless: create a new component instance on each call – Conversation: create a component instance for each conversation – Composite: create a single component instance for all calls
17
Create Composite Builder CompositeBuilder Create implementation classes that implemented CompositeBuilder
18
Create Composite Builder CompositeBuilder Impl
19
Create Composite Activator Create CompositeActivatorImpl
20
Load System SCA Definitions Load system definitions – ReliabilityPolicy – TransactionPolicy – SecurityPolicy – LoggingPolicy – WSBindingDefinitions – SCABindingDefinitions – JMSBindingDefinitions
21
Load Contributions Find and load contributions – e.g., Jar, Zip
22
Resolve composite Resolve elements in.composite file –
23
Build Composite Execute CompositeBuilder.build()
24
Build Composite E.g., binding type is WSDL, ComponentServiceBindingBuilderImpl.build() will generate WSDL file
25
Activate Composite For each component defined in composite, adding related implementation provider, service binding provider, reference binding provider
26
Activate Composite In Online fruit store, – Store component’s implementation type is widget , a WidgetImplementationProvider is needed – shoppingcart component’s implementation type is Java , a JavaImplementationProvider is needed – store component’s binding type is HTTP, a HTTPBindingProvider is needed
27
Start Composite Start binding, implementation and associated policies, etc.
28
Start Composite In Online fruit store, – Store component: WidgetImplementationProvider HTTP binding – shoppingcart component JavaImplementationProvider – Catalog component Jsonrpc binding
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.