9

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

我确实在 J2EE (Websphere) 和 Web 服务方面拥有丰富的经验,但我希望能得到有关如何构建这样一个 SOA 的建议。

陷阱在哪里?安全呢?服务的粒度应该有多细?等等

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

谢谢!

4

8 回答 8

6

陷阱

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

粒度

  • 每个服务都应该是独立的(不要指望人们在得到他们需要的东西之前做 3 次调用)

平台独立性

  • 尝试提供不止一种访问 API 的方式(WS、JSON、REST...)
于 2008-09-24T07:44:12.247 回答
4

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

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

(尽管自编写以来共识可能已经增长)

我建议对您的客户进行测验,以确切了解他们的意思——如果有的话。然后给他们一些真正提供业务价值的东西,同时勾选任何可能与该努力相一致的 SOA 框。

于 2008-09-24T08:29:35.803 回答
4

称我为 SOA 怀疑论者。福勒的哀叹似乎仍然正确。

我将关注更普遍的问题:您的客户有 2 个或更多必须一起协作的应用程序。看看老派的整合模式。

EIP 映像
(来源:amazon.com

于 2008-09-25T22:09:26.167 回答
3

找到了这本 IBM 红皮书(#sg246303 ),它很好地介绍了 SOA 的基础知识。

于 2008-09-24T11:28:50.147 回答
2

正如 Alan 所说,我会开始阅读Enterprise Integration Patterns 这本书。有许多方法可以直接使用消息传递系统(如 JMS)或使用开源项目(如Apache Camel )来实现它们,例如查看模式目录

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

于 2008-09-29T10:09:13.593 回答
1

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

于 2008-09-24T08:13:03.177 回答
1

目标是以独立于终端客户的方式开放各种流程,并使数据可离线使用,例如访问客户的代表。

后半部分并不是真正的 SOA 主题,它更多的是复制到移动设备的问题。我会远离尝试实施流行语并专注于您所说的问题。Web 服务是向客户端独立方式开放流程的好方法。

于 2008-09-24T16:54:02.847 回答
0

到目前为止,我发现的最好的书是SOA Compass也可以在亚马逊上找到

于 2012-05-08T08:31:02.153 回答