In Step 2 instances “c” and “e” calculate their own
priority and instance “e” broadcasts a request itself.
Now instance “c” can respond to the calls of
instances “a” and “b”. As they had the same priority
he chose one of them at random. Instance “d”
calculates its priority and broadcasts a request.
Instance “c” notices an instance requested for
interface “A” with a higher priority than it is
connected, so it disconnects from instance “b” and
connects to instance “d”.
In Step 5, instance “d” has all required connectors
connected and can respond to the request of instance
“e” and can connect to “e”.
Finally instance “e” has all required connectors
connected and connects to “a” and “b”. Because no
instance can respond to a request with a higher
priority the system reaches a stable state.
4.3 Result
As illustrated above, the algorithm creates the best
configuration for this example as described in
Chapter 3. Therefore, it could be a good approach to
solve problems such as this.
The algorithm uses a broadcast to let every
instance know the requests. It is similar to an
algorithm using a central unit for composing, but
there are also differences. To composite components
a central unit needs more information about the
components, than information broadcasted in the
requests. For example the central unit need to know
which component provides which interface. Another
difference is, that every instance can only remember
those requests, it can provide. Therefore, every
instance has less information, than a central unit.
In order to project the abstract example onto the
example described in Chapter 2, an auxiliary should
be defined as an initial instance. Therefore, the
algorithm tries to connect all auxiliaries to at least
one coordinator. This implies that all information of
the auxiliaries could be sent to at least one
coordinator.
5 SUMMARY AND FURTHER
WORK
In this paper, an approach which can connect a
number of instances together without a central unit
by having regard to the restriction of the services
one instance can serve has been demonstrated. A
real-life example has been shown where middleware
could be used, for example, to build a
communication infrastructure. In further work, this
approach will be evaluated and extended with
further properties. One property of components in
most systems is that not every required Interface is
necessary to run the instance of the component.
Hence, the approach needs to take this into account.
REFERENCES
Kon, F., Costa, F., Blair, G, Campbell, R. H., 2002. The
Case for Reflective Middleware. CACM June
2002/Vol. 46, No. 6.
Issarny, V., Sacchetti, D., Tartanoglu, F., 2004.
Developing ambient intelligence systems: A solution
based on web services. Journal of Automated Software
Engineering.
Szyperski, C., Gruntz, D., Murer, S., 2002. The book,
Component Software: Beyond Object-Oriented
Programming. New York, 2
nd
Edition, Addison-
Wesley.
Currion, P., Silva, C., Van de Walle, B., 2007. Open
source software for disaster management.
Communications of The ACM, Vol. 50, Issue 3, pp.61-65.
Klus, H., Niebuhr, D., Rausch. A., 2007. A component
model for dynamic adaptive systems. In Alexander L.
Wolf, editor, Proceedings of the International
Workshop on Engineering of software services for
pervasive environments, pages 21–28, Dubrovnik,
Croatia.
Janakiram, D., Venkateswarlu, R., Nitin, S., 2005,
COMiS: Component Oriented Middleware for Sensor
Networks. To appear in the proceedings of 14th IEEE
Workshop on Local Area and Metropolitan Networks
PECCS2013-InternationalConferenceonPervasiveandEmbeddedComputingandCommunicationSystems
250