Skip to content
This repository has been archived by the owner on Nov 6, 2019. It is now read-only.

Fuchsia 101

jandernascimento edited this page Nov 15, 2013 · 7 revisions

What is Fuchsia?

Fuchsia is a long lasting platform "adaptable" to embbed protocols used by a given application. This platform aims to facilitate the comunication between applications blocks inside the osgi platform.

There exists essentially 3 types of entities inside fuchsia that you need to understand before go hands-on the code:

  • Declaration
  • Discovery
  • Importer
  • Exporter

Declarations

Think in Declaration as a property file, although that it is not a file, it is an service registered in an OSGi platform, as long as this service is registered with the proper platform, Fuchsia will recognize it.

Its function is to indicate that a given device/service is available with certain properties, and is the role of an Importer/Exporter (explained later) to receive those information as inputs and create a bridge between the osgi platform and this device (all by using the properties given by the Declaration), allowing other services to access this device without knowing its protocole.

Discoveries

As seen before, the way that we inform the Fuchsia platform the existence of a device/service is through a declaration Declaration, that can be registered manually of course (since its a service registered in OSGi platform with the interface org.ow2.chameleon.fuchsia.core.declaration.ImportDeclaration), but this can be done by fuchsia discoveries, that use specialized discovery protocols to extract all the relevant information of a given service/device and publish in OSGi platform a Declaration containing all those informations.

Processors

Importers

In order to trigger importers to perform their job, they must to receive an import declaration which is configuration (think of it as a key value mapping, just like java properties). The importation declaration will recognized by Fuchsia as long as they are registered in OSGi with the proper Fuchsia interface (for an importer for example must be org.ow2.chameleon.fuchsia.core.declaration.ImportDeclaration )

Exporters

Analogue to the importers, the exporters must to receive a *declaration, but in this case an export declaration. But its role is to provide an external access (by external meaning externally to the OSGi platform) to the services available in the current OSGi platform, for instance by publishing a WS.

Linkers

The existance of a declaration and a processor is not enough to trigger a connection is established between them, in order to do so there exist the linkers.

Clone this wiki locally