1

这是我对自己提出的一个奇怪的问题。我们在工作中就如何实现实际上几乎是面向服务的架构 (SOA) 进行了一些辩论,其中有一些不值得讨论的问题。也就是说,它是一组用于构建 SaaS Web 应用程序的小型简单服务(大多数情况下,遗留包装器并不是那么少)。

无论如何,一个争论的问题是是否使用无共享方法并让每个服务通过该服务的 API 与其他服务进行通信,或者是否开发某种类型的共享 API 库,该库将由各种服务导入以直接通信彼此。后者可能会让人们想起 CORBA。

所以,我对团队的建议是,对于每个感觉强烈的人——我们中的一些人——去研究并为我们个人希望如何实施该系统提出一个被广泛引用的案例。然后,为了希望减少确认偏差并启发每个人,请为我们个人不希望如何实施该系统提供一个被广泛引用的案例。然后我们都重新聚在一起,把它解决掉。

我的问题是,除了 CORBA 示例之外,我发现很难搜索紧密耦合、类似 CORBA 的导入库设计的想法。是否有这样做的支持者,尤其是与解耦的 SOA 架构相反?或者只是这个时代这个想法的一般支持者?我赞成无共享架构,其中每个服务都有自己定义明确的 API,现在我需要为我不赞成的内容做一个演示,但我什至找不到任何支持证据或者不是来自前 SOA 时代的信息。

4

1 回答 1

3

像大多数“X vs Y”问题一样,答案取决于.

脱钩不是灵丹妙药。虽然它有很多好处(可重用性、模块化、测试、更容易维护等......),但它可能导致解决方案的过度设计(因此可能需要更长时间来创建和增加进入/理解的更多障碍)并且通常有一些对性能的影响。避免仅仅为了它而去耦/抽象也是很好的(除非它很容易或“低垂的果实”)。否则,请确保您有一些体面的用例来支持它。

这在很大程度上取决于您的项目类型、进度和绩效目标。与其在考虑您的项目之前询问哪个x更好,不如询问如何以具体和有意义的方式将每个x应用于您的项目,并以此为基础进行判断。

于 2012-05-04T00:36:02.913 回答