代码之家  ›  专栏  ›  技术社区  ›  lomaxx

何时使用SOA(面向服务的体系结构)[关闭]

  •  16
  • lomaxx  · 技术社区  · 17 年前

    10 回复  |  直到 17 年前
        1
  •  24
  •   Community Mohan Dere    13 年前

    我们向客户公开服务,因为他们不应该直接连接到数据源。

    我们向自己公开服务,因为使用WCF更容易将它们分散到不同的技术中。

    我们公开服务是因为同一数据源有不同的用户界面。当我们使用服务时,我们节省了三分之一的工作量。

    这从来不仅仅是因为异步操作。

        2
  •  9
  •   Matthew Heusser    17 年前

    使用服务的另一种情况是当您想要集成异构技术栈时。

    换句话说,如果你的数据库是postgres,但你有Java、Perl、Python和C++的代码,你可以编写存储过程,并让每种编程语言调用它们。如果您正在使用一个没有存储过程的数据库,或者您想拥有将这些过程切换出去的能力,或者您只想在端口80上运行,您可以将SQL调用包装在一个面向服务的层(想想websphere)中,现在任何人都可以调用它,此外,您还可以将身份验证和授权逻辑(连接到LDAP,无论什么)放在SOA层中。

    因此,如果你有许多遗留系统想要互连,比如销售系统、仓储系统和订单预测系统,SOA可能是实现这一目标的一种方法。(您还可以使用“服务总线”来创建事件驱动系统,作为编排更改的更好方式。)

    只有我在说话。

        3
  •  6
  •   Community Mohan Dere    6 年前

    SOAPatterns

    • 实现抽象(平台、语言、持久性抽象)

        4
  •  3
  •   Michał Chaniewski    17 年前

        5
  •  2
  •   Vinnie    17 年前

    SOA可以用来隐藏子系统的实现细节。例如,如果你的客户需要产品信息,最好将你的产品数据库或库存子系统打包成一个通用服务,只公开客户需要的功能和数据的子集。然后,如果您需要更换或升级该子系统,您将能够使这些更改对您的用户和面向客户的软件界面透明。

        6
  •  2
  •   Chris K    17 年前

    通过使用统一语言(WSDL)作为接口,您可以为互操作准备技术孤岛。通过现在实现SOA,而不是直接到数据源,您可以自动使您的数据源可供您从未考虑过的各方和业务需求使用。

    WSDL终于是Corba了。

        7
  •  2
  •   Bob77    17 年前

    WSDL和SOAP通常会遇到与CORBA和DCOM相同的问题:合约版本控制是一场噩梦。在降级情况下,这并不是一个大问题,因为你可以完全控制所有客户端和服务器,但当你开始联合系统时,情况会变得很糟糕,尤其是在跨企业时。

    此时,您几乎被迫采用某种事件驱动的架构方法,而不是典型的SOAP作为RPC交互模型。这并不一定意味着使用ESB,但将企业之间的连接视为ESB之间的连接非常有用。

    有答案,但它们从来都不简单。 Best practices for Web services versioning

    但SOA根本不意味着异步。这只是实现SOA的聪明方法。SOA是关于松耦合的。SOA的EDA子集是关于解耦的,更进一步。

        9
  •  1
  •   ante.sabo    17 年前

        10
  •  0
  •   Pablo Castilla    16 年前

    最后,你会有很多乐高积木,你会把它们拼在一起。

    推荐文章