tags:

views:

175

answers:

3

I am currently working on a pretty large Java 6 application where we are looking to split some of our functionality out into a service oriented architecture.

It seems that the primary SOA framework for the application space is OSGi and I have been looking into Felix and Knopplerfish but I wanted to make sure that this isn't my only option.

Does it make sense to use an actual web service protocol for our application like SOAP, even though we are not building a web app? Is this even acceptable?

Have any of you used an implementation of OSGi (Felix, etc.) with your desktop application? if so, how did it go? Do you know of anything better?

We're all pretty new to SOA here so any help would be greatly appreciated.

+2  A: 

My company uses OSGi extensively, and it works well for us, in that we can version various components and have greater control over what gets exposed from each component.

If you envision ever wanting to run different components on separate hardware, then writing using web services (REST/SOAP/etc) makes sense. But there's a performance penalty in both sending bits from one process or network to another,and serializing/marshalling that data so it can be sent, and doing the opposite on the other side. If you don't ever think that will happen, then don't use web services.

dj_segfault
which OSGi implementation do you guys use?
Robert Greiner
+1  A: 

We use Eclipse RCP as our application platform, which is OSGi based (Equinox). Our application makes usage of both the Eclipse plugins as well as pure OSGi bundles. In our case we have services that are both local to the application as well as remote (via Spring Remoting) to JEE servers.

In your case, OSGi may make sense for your app, but remote service protocols don't.

Also, a desktop application on its own is not considered SOA. You are simply componentizing your application, which is a good thing.

Robin
+1  A: 

Equinox is a good implementation as well. http://www.eclipse.org/equinox/