PiggyZhu
PiggyZhu

Reputation: 15

How to develop a client-server system with OSGi?

I'm learning how to develop with OSGi in recent days, but facing a lot of problems.

I don't know how to design my client-server system based OSGi with Equinox as framework. Should I use socket connections to implement this or use a distributed model?

I'm also confused whether I need to import some third party packages to support my programming on socket, jdbc, swing, etc, or there're existing packages offered by Equinox or other OSGi open source projects?

First time to ask questions here, can anybody help me?

Upvotes: 0

Views: 2031

Answers (3)

Bertrand Delacretaz
Bertrand Delacretaz

Reputation: 6100

The HTTP model is probably the simplest to implement, as opposed to protocols based on low-level socket handling and binary protocols.

The first question I'd ask is what kind of information your clients and server need to exchange. If you can live with HTTP (and in many cases you can), you can just use servlets on the server-side, http client libraries on the client side and a RESTful communications model.

Servlets are easy to implement in OSGi using the HttpService, see for example http://www.osgilook.com/2009/09/08/osgi-http-service-registering-servlets-on-the-fly/

Upvotes: 0

Angelo van der Sijpt
Angelo van der Sijpt

Reputation: 3641

Working with sockets is not more or less complicated in OSGi than it is in 'plain' Java. You design your application in much the same way as you would normally, but gain the benefits of modularity and services by using OSGi.

You could, for instance, decouple connection acceptance and request handling by introducing something like a WorkerFactory, or maybe reuse services on both the client and the server; those are the things that OSGi is good at.

OSGi as a 'technology' (as far as that notion holds water) does not mandate any specific interaction method. The compendium specification mentions Remote Services (a.k.a. Distributed OSGi), but it also contains an HTTP service specification is Servlets are your thing.

In short, just pick the interaction solution that best matches your scenario, and let OSGi help you with the services and modularity.

Upvotes: 0

Dmytro Pishchukhin
Dmytro Pishchukhin

Reputation: 2369

just take a look at OSGi Remote services implementations (more details in OSGi spec):

Cheers,

Dmytro

Upvotes: 1

Related Questions