2

我目前正在开发一个相当大的 Java 6 应用程序,我们希望将我们的一些功能拆分成一个面向服务的架构。

似乎应用程序空间的主要 SOA 框架是 OSGi,我一直在研究 Felix 和 Knopplerfish,但我想确保这不是我唯一的选择。

即使我们没有构建 Web 应用程序,对我们的应用程序(如 SOAP)使用实际的 Web 服务协议是否有意义?这甚至可以接受吗?

你们中的任何人在您的桌面应用程序中使用过 OSGi(Felix 等)的实现吗?如果有,进展如何?你知道更好的吗?

我们都是 SOA 的新手,因此我们将不胜感激任何帮助。

4

2 回答 2

2

我的公司广泛使用 OSGi,它对我们来说效果很好,因为我们可以对各种组件进行版本控制,并且可以更好地控制从每个组件公开的内容。

如果您想在不同的硬件上运行不同的组件,那么使用 Web 服务(REST/SOAP/等)编写是有意义的。但是,从一个进程或网络向另一个进程或网络发送位,以及序列化/编组数据以便可以发送,以及在另一侧执行相反的操作都会降低性能。如果您认为这不会发生,请不要使用 Web 服务。

于 2009-06-10T15:13:57.183 回答
1

我们使用 Eclipse RCP 作为我们的应用程序平台,它是基于 OSGi(Equinox)的。我们的应用程序使用了 Eclipse 插件和纯 OSGi 包。在我们的例子中,我们拥有应用程序本地的服务以及 Java EE 服务器的远程(通过 Spring Remoting)服务。

在您的情况下,OSGi 可能对您的应用程序有意义,但远程服务协议没有。

此外,桌面应用程序本身不被视为SOA。您只是将应用程序组件化,这是一件好事。

于 2009-06-10T15:25:17.177 回答