2009-10-07 69 views
8

当我们选择使用直接数据库访问还是使用Web服务时,有什么优点和缺点?直接访问数据库vs网络服务

对于应该响应的关键应用程序(< 0.5秒)和低调用此Web服务/数据库(注意:Web服务将由其他​​团队维护),您会选择什么样的方式。

回答

18

直接访问数据库将您紧紧地连接到模式。任何一方的变化都会影响另一方。但它具有简单的优点,并且需要少一个网络跳数。

Web服务意味着更好的抽象和更宽松的耦合通过一个额外的间接级别。 Web服务可以充当数据的单一管理者。如果其他应用程序出现并需要相同的数据,那么您将直接与数据库直接对接,这样您就会增加他们某天需要更改架构的机会。这些更改也会影响您的应用。成本更多是延迟。

Web服务可以成为集中授权和安全的好地方。数据库也可以做到这一点,所以也许这是一种洗涤。

+3

表现是另一个考虑因素;直接访问数据库通常要快得多 – Cocowalla

1

显然,在简单场景下直接访问数据库总是会更快。

有了一个WebService,您将获得灵活:

  • 插件不同的实现,
  • 几个应用程序需要访问相同的数据,使一个负责的数据,并有另一种通过WebService访问它:两者之间没有数据延迟;你可以保持经常访问的数据在内存中的该应用程序,而不是使用数据库的应用程序之间的通信....

鉴于你的反应的情况下(与可能是与其他球队的问题),我会尝试去去直接数据库访问路线,除非有几个应用程序需要共享数据 ...

+0

我不能说哪种方法更好。在你的应用程序中,数据库访问肯定会起作用。这取决于服务对整个企业有多大的益处。 – duffymo

+0

问题在于,当你的数据库将被多个应用程序使用时,它有时很难或不可能提前知道。这是存储过程比存在于应用程序源中的参数化查询更好的另一个原因。 –

0

Duffymo和KLE都有效。

另一个考虑因素是与其他团队的耦合程度。

使用服务层时,您的项目通常是众多客户之一;这通常意味着您必须使用可用的服务,或者等待路线图提供您可能需要的更改。这往往会导致对整个企业有利的决策,但对于您的项目来说不是那么好。