An OSGi service is not a communication end-point, it is therefore also 
sometimes called a µservice (though OSGi used the name service since 1998). The 
OSGi code is 100% about the internal VM organization and is agnostic of other 
processes (as it should be).

In OSGi, a service is an object, usually with a defined API, that is shared 
between bundles (aka modules). How to access this object's API outside the VM 
is outside the core specification.

However, services are very well specified and have events for discovery and 
life cycle. It is therefore possible to write another bundle that takes any 
suitable service and maps its API to REST, a Webservice, an RMI endpoint, etc. 
without the service having to be aware of it. The OSGi specification defines 
Distributed OSGi and the Remote Services Admin for this subject area. There are 
several implementations available of these specs.

Obviously not every service is suitable for distribution, in general they must 
be stateless and have easy to serialize/marshall arguments. There is of course 
also the impact of timing, in general you want to allow batches in remote 
services. However, when you follow a few simple rules in your API design you 
can write applications in OSGi that use services that are available locally as 
well as remotely while being pure POJOs.

Kind regards,

        Peter Kriens


On 15 apr. 2013, at 11:07, Pradeep Simha wrote:

> Hi,
> 
> We are currently new to OSGi, and we are evaluating OSGi for our upcoming 
> projects (new & enhancements) so we are planning to host a common services 
> which will be used across new applications and already existing applications. 
> Initially we thought web services, but later we attracted towards OSGi for 
> various advantages it provides. So I have a few questions for which I 
> searched but didn't get correct answer, so can anyone help me in this?
> 
> 1) Say we develop few components and deploy it as a OSGi service in a cloud. 
> Can non-osgi web applications consume services which we hosted on OSGi 
> container?
> 2) For new applications we can build it as a complete OSGi application, but 
> we are concerned about existing application? Say EAR application/standalone 
> application, can invoke OSGi service just like a web-service? Is it possible?
> 
> Thanks,
> Pradeep
> _______________________________________________
> 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