分离演示文稿/网络服务

时间:2009-01-15 01:56:56

标签: ruby-on-rails architecture glassfish jax-ws java-metro-framework

在两个不同的服务器上开发两种不同语言的网络服务和网站是一种很好的做法吗?例如。现在我创建一个在Glassfish上运行的Java Web服务和在同一服务器上运行的Ruby on Rails表示层。

我想将web服务保留在同一台服务器上,但使用在Passsenger中运行的Ruby 1.9。

这是个好主意吗?我没有网络应用程序架构方面的经验。

4 个答案:

答案 0 :(得分:0)

如果您编写合同第一个使用和生成XML的Web服务,您可以与任何可以以适当格式发出HTTP GET或POST请求的客户端进行通信。 SOAP或REST,无所谓。

我编写了以XSD开头的Java / Spring Web服务。 Yahoo UI RIA客户端接受了WSDL,发出HTTP POST以发送请求文档,并在一个漂亮的数据网格中显示XML响应。

答案 1 :(得分:0)

从技术上讲,是的,你肯定能做到这一点。这是使用WS的优势之一。它们是可互操作的。

但是,如果其他人要维护它并且仅在两个平台之一(RoR或Java)中具有专业知识,我会考虑一下这个想法。最好问: - )

答案 2 :(得分:0)

就系统架构而言,是的,这是一种“良好做法”。好的,我的意思是它实现目标,没有伤害,并强制分离关注点。

我一直在开发具有类似结构的架构。用户界面是.NET并使用Java Web Services。然后,Web服务负责与持久性媒体,第三方组件等的所有交互。

我会说在任何系统中你都应该从业务逻辑中抽象出用户界面逻辑。这只是关注点的良好分离。使用Web服务来实现这一目标只是一种方式。如果您将在系统中的其他用例中重复使用这些业务服务,我建议您使用Web服务。

还有一件事;在过去的8年中,在UI和WS上使用了两种不同的技术之后,我了解到大多数挑战都是组织性的,而不是技术性的。例如,很难找到那些同时具备维护应用程序技能的新开发人员。你最终必须找到一个专家,然后用其他技术训练他们。

答案 3 :(得分:0)

这取决于它们的相似程度。

如果您的Web服务基本上在功能上反映了您的网站 - 那么重用现有代码并因此在同一服务器上使它们成为相同的东西是很有意义的。

注意 - 这与纠缠层不同,因为您的视图仍然与业务逻辑分开。

从Ruby-on-Rails的角度来看,“Web服务”和“网站”通常是可以互换的,因为它们是完全相同的代码,只有视图模板不同(网站为html,xml为网络服务)。 如果您从一开始就考虑使用RESTful架构,那么您可以通过最少的重复实现此目的,并且所有应用程序层都可以正确地解耦。