我有一个项目正在生产中,使用REST方法提供一些Web服务。现在,我需要在SOAP中提供一些这样的Web服务(这意味着我需要在SOAP中提供一些相同的Web服务,而其他的则有点不同),所以,我问你:
我是否应该在现有项目中加入SOAP堆栈(库,配置文件......),构建另一个以信封方式传递数据的层(有人称之为“反腐败层”)?
我是否应该仅使用规范模型构建另一个项目(在共享库中成为它)?
......或者你如何处理类似情况?
请考虑我们理想的SOA架构目标。
感谢。
答案 0 :(得分:0)
在我们的项目中,我们有一个外观层,用于向业务实体公开服务和映射,以及运行业务逻辑的业务层。
因此,要为现有服务添加SOAP端点,我们只需创建一个新的Facade并调用相同的业务逻辑。
在许多情况下,它甚至更简单,因为我们使用WCF,我们可以为外部客户端提供http SOAP端点,为内部客户端提供二进制tcpip端点。可以通过更改配置来添加新端点,而无需更改代码。
答案 1 :(得分:0)
我对SOA系统的看法,你有消息和pub / sub。消息是界面。将这些消息输入和输出系统是一个实现细节。我创建了一个接受原始消息文档的端点(更像REST,但不是真正的REST),以及一个接受消息作为SOAP调用的单个参数的端点。处理传入消息的代码是HTTP端点启用的一个单独问题。
答案 2 :(得分:0)
您可以使用ESB。 ESB收到soap消息并将其余请求发送到后端的地方。 WSO2 ESB提供此功能。请看这个样本[1]。
[1] http://wso2.org/project/esb/java/4.0.0/docs/samples/proxy_samples.html#Sample152