Appendix - Fractal Architecture

Introduction

The following diagrams aim to describe the composition of the Fractal components of Petals ESB.

By naming convention, if not specified, the default name of the interface 'server' is "service".
To have readable diagrams, some interface links are not drawn:

  • the links between the interfaces "server" of a composite and the interfaces "server" of its internal components,
  • the links between the interfaces "client" of internal components of a composite and the interfaces "client" of the composite.
    Into a composition, only links between internal components are drawn.
The following diagrams, except the legend, are exported as JPEG image from the slides contained in [Fractal-Diagrams.odp]. The export is done with following parameters:
  • width: 27.99 cm,
  • height: 21.01 cm,
  • resolution: 37 pixel/cm
  • color: 24bits,
  • quality: 100%

The legend is included in the Open Office Presentation but exported using a screeen shot resized with Gimp.

Contributors
No contributors found for: authors on selected page(s)

Fractal tips

Composite startup

The sub-components of a Fractal composite are started sequentially, so you MUST declare the sub-component in the right order in the Fractal ADL.

Diagrams

Each Fractal diagram is drawn using the following legend:

Petals Composite

System Composite

Container Composite

A component SharedLibraryLifeCycleImpl is instantiated each time a JBI shared library is installed into the JBI container. It is dynamically created.
A component ComponentLifeCycleImpl and Installer is instantiated each time a JBI component is installed into the JBI container. It is dynamically created.
A component ServiceAssemblyLifeCycleImpl is instantiated each time a JBI service assembly is deployed into the JBI container. It is dynamically created.

JBI Management Composite

JBI Messaging Composite

Communication Composite

Transporter Composite

NioTransportProtocol

ExtensionsManager composite

Each extension is instantiated dynamically when Petals ESB is started according to the content of the Petals ESB classloader.

Extensions

Autoloader composite

Artifact repository composite

WsApi composite

Known problems

Deadlock when starting a composite

Symptoms:

The startup of Petals blocks into the startup of the Fractal composite into the thread "main" with a similar thread dump:

"main" prio=10 tid=0x00007f83d4007800 nid=0x981 in Object.wait() [0x00007f83db58f000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000000c038a388> (a org.objectweb.fractal.julia.generated.Cbd2013d7_0)
	at java.lang.Object.wait(Object.java:485)
	at org.objectweb.fractal.julia.generated.Cbd2013d7_0.incrementFcInvocationCounter(BasicControllerMixin.java:4216)
	at org.objectweb.fractal.julia.generated.Cec3b28ec_0.startScanner(INTERCEPTOR[DirectoryScanner])
	- locked <0x00000000c038a388> (a org.objectweb.fractal.julia.generated.Cbd2013d7_0)
	at org.objectweb.fractal.julia.generated.Cc2597297_0.startScanner(INTERFACE[DirectoryScanner])
	at org.ow2.petals.jbi.management.autoload.AutoLoaderServiceImpl.start(AutoLoaderServiceImpl.java:221)
	at org.ow2.petals.jbi.management.autoload.AutoLoaderServiceImpl.startFc(AutoLoaderServiceImpl.java)
	at org.objectweb.fractal.julia.generated.Cbd2013d7_0.setFcContentState(BasicControllerMixin.java:8128)
	at org.objectweb.fractal.julia.generated.Cbd2013d7_0.setFcStarted(BasicControllerMixin.java:8068)
	- locked <0x00000000c038adc8> (a org.objectweb.fractal.julia.generated.Cbd2013d7_0)
	at org.objectweb.fractal.julia.generated.C18c4c884_0.setFcStarted(INTERFACE[LifeCycleCoordinator])
	at org.objectweb.fractal.julia.generated.C4eddf8e0_0.startFc$$0(BasicControllerMixin.java:4097)
	at org.objectweb.fractal.julia.generated.C4eddf8e0_0.startFc(BasicControllerMixin.java:5095)
	at org.objectweb.fractal.julia.generated.C18c4c884_0.startFc(INTERFACE[LifeCycleCoordinator])
	at org.ow2.petals.kernel.server.FractalHelper.startComponent(FractalHelper.java:356)
	at org.ow2.petals.kernel.server.PetalsServerImpl.startPetalsComposite(PetalsServerImpl.java:412)
	at org.ow2.petals.kernel.server.PetalsServerImpl.start(PetalsServerImpl.java:186)
	at org.ow2.petals.launcher.PetalsLauncher.launchPetalsServer(PetalsLauncher.java:154)
	at org.ow2.petals.launcher.PetalsLauncher.main(PetalsLauncher.java:391)

Solution:
Update the ADL of the Fractal composite to set the sub-components in the right order.

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.