[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] Which protocol and ECF api to use

Hi Atanas,

On 6/17/2011 5:22 AM, Атанас Тодоров wrote:
Hi All,

We are searching for a way to implement remote communication between two OSGI based products with ECF.The base requirement for that is the protocol of communication to be http based.
Remote services API supports mainly two protocols -  ECF Generic Server and R-OSGI which however are not http based.Right?

We want this communication to be configured via xml files or API and NO custom implementation to be  needed to support discovery, serialization/de-serialization, authorization/etc. 
A good solution for this seems to be the REST api however  from what we've read there isn't a  way to expose the server's services as rest-based services so that client can discover them and do post/get with rest api.We've read about RESTlet+OSGI api which might be a solution for our use case right?

It might.  Although I'm not a Restlet expert, I don't believe communication with Restlet is typically configured via xml (rather it uses java annotations to define how method on a java class are exposed via get/put/post/delete).  WRT authentication and authorization...I'm not sure what you are looking for exactly...so it's hard to say without more information whether Restlet will meet your needs.  Would you be willing to say more about what you need here?

As for discovery...ECF's implementation of OSGi remote services/RSA separates the discovery from the distribution system...which allows you to choose which discovery you wish to use with *any* distribution provider (ECF generic, r-osgi, restlet, whatever).  Thus the discovery module can be chosen from the ones ECF has available (zeroconf, slp, zookeeper, dnssd) irrespective of what distribution system is used...and so if you don't need/want a custom discovery implementation, then you can use one of the ones listed.

Now...Restlet wasn't originally designed to run in an OSGi environment, so that has to be dealt with...forgetting about ECF/remote services for a moment.  Bryan Hunt and others have been working on an OSGi bridge for Restlet, and it's available here [1].

Further, I've been using this OSGI integration work and the Restlet API to create an remote services distribution provider.  I have it working...but it needs some further work that I haven't yet been able to complete...and further I haven't decided what to do with it yet (i.e. whether to contribute to ECF or not, etc).  If you are interested in working with me on it and/or using it directly from me, then please contact me directly at slewis at composent.com.

How this Restlet api works? If I have a simple osgi service is there a way to expose it so that client can discover it with rest api? Are there any other solutions for this use case?

I'm not quite clear enough yet on your serialization and authentication/authorization requirements to say for sure...but it is possible that r-osgi could meet them (as Markus has already indicated).  It's also possible that the Restlet provider that I've been working on could support what you need, as (probably) could a provider based upon jax-rs (which would also be very simple to create, but such a ECF remote services provider hasn't been implemented or contributed yet).


Atanas Todorov

[1] http://code.google.com/a/eclipselabs.org/p/restlet-integration-with-equinox/