Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

POJO means Plain Old Java Object. A POJO is a very simple Java class containing only the business logic. A POJO has not dependencies on its execution environment. (http://en.wikipedia.org/wiki/Plain_Old_Java_ObjectImage Removed)

In iPOJO, a POJO is a Java class who serve of implementation to a component type. As a content of a component, non-functional requirement of this class will be injected by the container.

...

Code Block
<iPOJO>
<component className="...MyPOJO">
                               <provides interface="...MyService"/>
                               <dependency field="myRequiredService"/>
</component>
<instance component="...MyPOJO" name="MyFirstInstance"/>
</iPOJO>

...

The separation of concerns is one interesting property of CBSE. Separation of Concerns separates the business logic of the non-functional requirement. (http://en.wikipedia.org/wiki/Separation_of_concernsImage Removed)

The main technology to support separation of concerns in CBSE is the container approach. An instance is composed by two things:

  • The content : generally an object of the implementation class
  • The container : managing the instance

...

  • !img1.png|align=center!
    The container has to manage all non-functional requirements of the content as the bindings with others instances or resources, the lifecycle ... In iPOJO, the container is described in the component type. If we represent the previously created instance, we have:

...

  • Image Added

What does lifecycle mean?

As said in the previous section, containers manage the lifecycle of instances. The lifecycle is composed by the different state of the life of an instance.

...

The following image illustrates the instance lifecycle:<image3>Image Added

How is composed the iPOJO Container?

...

The following image represents the iPOJO container of the previous instances.<image4>Image Added
Moreover, the iPOJO container composition influences the instance lifecycle. Indeed, an instance is valid if all plugged handlers are valid, otherwise the instance is invalid. 

...

An Architecture Description Language (ADL) is a computer language used to describe software and/or system architectures. (http://en.wikipedia.org/wiki/Architecture_description_languageImage Removed)

iPOJO provides an ADL based of the notion of services. This kind of "composition" can be named Structural Service Composition. Generally, the application is described in terms of components or instances. iPOJO compositions are described in term of services. This composition allows more flexibility and allows service implementations to evolve without breaking the composition.

...

The following image represents an iPOJO composition and its description:

<image 5>

 

 

 Image Added