As a supplementary note, today you can use the Discovery and Topology
aspects of OSGi Remote Services without the Distribution aspect for finding
asynchronous endpoints and advertising presence.

For example suppose you have an AMQP broker, which can be represented as a
URI something like this: "amqp:/hostname:port/exchangeId". You can
advertise a service using a marker interface -- let's call it "Endpoint" --
setting the URI and service.exported.interfaces property. Then on a remote
machine, you can use DS to inject the Endpoint service into your client
code and get the AMQP URI. The client never directly invokes the service
but uses the URI property to make an out-of-band connection.

The nice thing about this is you can easily de-advertise the URI by
unpublishing the Endpoint service, so it's a very easy way to indicate
presence.

Neil



On Mon, Mar 3, 2014 at 9:39 AM, Mike Wilson <[email protected]> wrote:

>  Attempting to look wider than my previous question about remote
> services, I'm looking at any way to make an asynchronous call from a bundle
> in one OSGi container to a service in another OSGi container.
> There's an interesting discussion about asynchronous service calls on:
> http://blog.osgi.org/2010/04/calling-your-cake-and-sending-it-too.html
>
> Have there been any new developments towards standardization of any
> asynchronous pattern, or is using ECF or making your own still the main
> alternatives?
>
> Or, is the preferred option to use some third-party API directly, such as
> a messaging API like ActiveMQ?
>
> Thanks
> Mike
>
> _______________________________________________
> OSGi Developer Mail List
> [email protected]
> https://mail.osgi.org/mailman/listinfo/osgi-dev
>
_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to