felix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Kitching <si...@vonos.net>
Subject Re: Newbie question related to device communication
Date Mon, 01 Jun 2015 13:53:40 GMT
Hi Sebastiaan,

Regarding "management of large distributed systems" : the OSGi spec 
itself mainly deals with multiple libraries running in a single JVM. 
Some of the central features of OSGi can help in building a distributed 
system, but they aren't part of the OSGi spec itself. And Apache Felix 
doesn't have any subprojects that address distrubuted systems (AFAIK). 
You might want to look at Ace (ace.apache.org) or jboss fuse (though 
fuse is currently undergoing a radical rewrite, with the previous 
version effectively abandonware, so is difficult to base anything on at 
the moment).

Regarding osgi remote services: the spec is pretty elegant, and invoking 
a remote service is much like invoking a local one. However the existing 
implementations are mainly intended for integration with other systems, 
and not for performance. I recently needed a high-performance 
remote-services impl for communication between OSGi containers, and had 
great difficulty finding one. The reference impl from cxf.apache.org is 
based on xml and opens a new network connection for each call. The impl 
from Amdatu is based on json, and also opens a new network connection 
per call. The impl from eclipse ECF seems poorly maintained and poorly 
documented - at least I didn't feel comfortable integrating it into a 
production system. In short : if you want to occasionally make calls to 
external systems via SOAP or allow external systems to occasionally call 
in, then remote services with the default impls are ok. Building a 
cluster with it is not currently so easy.

One other issue with remote services : deserialization can cause 
problems. In particular, the code deserializing a stream needs to 
somehow locate the appropriate classes which is not so hard with a 
traditional java classpath, but more difficult under OSGi for obvious 


On 05/31/2015 06:22 PM, Sebastiaan la Fleur wrote:
> Remote Services and Remote Service Admin were indeed the terms I was
> looking for. Thanks Neil!
> 2015-05-30 13:55 GMT+02:00 Sebastiaan la Fleur <
> sebastiaan.la.fleur@gmail.com>:
>> Thanks for your reply! Yeah, I was thinking about that when I was in the
>> shower just now haha. Sorry about that.
>> To rephrase: Is there a connection handler component in the Felix
>> framework that already handles accepting and losing socket connections
>> which can also be used to send or are we stuck using our own implementation
>> on top of java sockets? Does that component already use some form of
>> application layer protocol to abstract from the streams into information
>> packets?
>> I want to be able to talk between different nodes (send textual and video
>> data). Of course I can write my own connection managing software, but I
>> would expect something like that to already be in Felix. I saw Felix
>> contains a subproject to handle HTTP servlets, but the client server
>> architecture of HTTP is not entirely suitable in my case. Both clients need
>> to be able to start a connection to each other and both clients need to be
>> able to start the conversation on the established connection.
>> Hopefully this is a lot clearer to what I am searching for!
>> 2015-05-30 13:19 GMT+02:00 Neil Bartlett <njbartlett@gmail.com>:
>>> That's a really wide-open question... "information exchange over a
>>> network" could mean so many things! Can you be more specific about your
>>> requirements?
>>> In the meantime, take a look at the Remote Services and Remote Service
>>> Admin specs as they may be relevant.
>>> --
>>> Neil Bartlett
>>> Sent from a phone
>>> On Saturday, 30 May 2015 at 11:36, Sebastiaan la Fleur wrote:
>>>> Hi everyone!
>>>> As of yesterday I am trying to get into Apache Felix for a project. I
>>> am still trying to get a basic grip on the framework. So far, if I am
>>> understanding correctly the framework allows for remote install, update
>>> etc. of bundles(highly modulerized code) on different devices which allows
>>> for the management of large distributed systems. I have been looking for a
>>> way to let these devices communicate using the framework but so far I was
>>> not able to find any subproject or piece in the OSGi specification that
>>> allows for this. Probable is that I missed it though(quite a bit of info
>>> :P). Does Felix have a subproject/implementation to handle basic
>>> information exchange over a network between OSGi capable devices? If so,
>>> could you direct me to the place where the documentation of this is stored?

To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org

View raw message