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