如何加快SOA的速度?

时间:2008-09-24 07:28:08

标签: web-services architecture soa

我的任务是为我的客户奠定SOA的基础。目标是以终端客户端独立的方式开放各种流程,并使数据脱机可用,例如代表访问客户。

我在J2EE(Websphere)和Web服务方面有丰富的经验,但我很欣赏有关如何构建这样的SOA的建议。

陷阱在哪里?安全性怎么样?服务应该如何精细化?等

教程和书籍推荐的链接也很有用。

谢谢!

8 个答案:

答案 0 :(得分:6)

<强>陷阱

  • 版本控制/向后兼容性:一旦有大量客户端,就很难更改合同。我已经看到许多网站通过在URL
  • 中引入版本来对API进行版本控制

<强>粒度

  • 每项服务都应该是合理的自我控制(不要指望人们在得到他们需要的东西之前进行3次通话)

平台独立性

  • 尝试提供多种访问API的方法(WS,JSON,REST ...)

答案 1 :(得分:4)

人们无法就SOA的实际含义达成一致。

http://martinfowler.com/bliki/ServiceOrientedAmbiguity.html

(尽管自那以后达成共识可能会增加)

我建议小心你的客户,找出他们的意思 - 如果有的话。然后给他们一些实际提供商业价值的东西,同时勾选任何可能与该工作重合的SOA框。

答案 2 :(得分:4)

称我为SOA怀疑论者。福勒的悲叹似乎仍然存在。

我会关注更普遍的问题:您的客户有2个或更多应用程序必须协同工作。看看旧学校的整合模式。

EIP image
(来源:amazon.com

答案 3 :(得分:3)

发现这本IBM红皮书(#sg246303),这是对SOA基础知识的一个很好的介绍。

答案 4 :(得分:2)

正如艾伦所说,我开始阅读Enterprise Integration Patterns book。有许多方法可以使用直接消息传递系统(如JMS)或使用Apache Camel等开源项目来实现它们,例如,请参阅pattern catalogue

我还将了解如何使用带有Jersey的JAX-RS构建良好的RESTful服务,这是一种简单的方法,可以轻松地从任何语言/平台向Web上的任何人公开您的系统资源,而不会陷入SOAP / WS- *死星:)

答案 5 :(得分:1)

获取ESB(企业服务总线):Mulesource是一个不错的选择(开源,成熟,但前沿)。一旦理解了,就会理解SOA。

答案 6 :(得分:1)

  

目标是打开各种各样的   终端客户端独立的流程   方式,也提供数据   脱机例如代表团访问   客户。

其后半部分并非真正的SOA主题,更多的是移植设备问题的复制。我会留下很远,远离尝试实施流行语并专注于你所说的问题。 Web服务是以客户端独立方式开放流程的好方法。

答案 7 :(得分:0)

到目前为止,我找到的最好的图书SOA Compass也可以在Amazon

上找到