SOA与数据库

时间:2011-05-05 06:37:41

标签: .net wcf json soap soa

我一直在阅读WCF并且来自我们没有使用Web服务的背景,我试图找出在数据库上使用Webservice的相对优势。当你尝试与外部应用程序交互时,我绝对可以说,从库存管理应用程序到供应商订单放置应用程序的自动订购材料。但在内部我试图看到它的用处。

可以在中央数据库上在内部在两个不同系统上与不同语言的两个不同应用程序进行通信。假设您的客户下了一个订单,您用Java编写的应用程序将其存储在MySql数据库中,然后发货人员通过他的应用程序接收订单,该应用程序通过程序从MySql自动检查新订单。所以我不确定Web服务在哪里适合整个内部方案。您希望在数据库上使用SOA的时候有哪些例子?

3 个答案:

答案 0 :(得分:5)

我不确定您是否可以将SOA(如此宽泛的术语)与数据库进行比较。维基百科中的SOA定义是

  

面向服务的体系结构(SOA)是   一套灵活的设计原则   在系统阶段使用   发展与融合   基于SOA的系统将功能打包为一套可互操作的服务,可以在多个业务域的多个独立系统中使用。 引自维基百科

因此,正如您所述,它不仅仅是与数据库通信的两个应用程序。这是对整个业务系统的更广泛的了解。 SOA层将为可被视为消费者的所有上游应用程序提供服务。 SOA层可能与任意数量的数据库进行通信。可能同时是MySQL,SQL Server,Informix。这些SOA层的消费者不必担心下游系统,他可以使用服务中可用的业务功能。

希望这能让你了解SOA的全部内容。有关SOA的详细内容,请阅读这篇维基百科文章http://en.wikipedia.org/wiki/Service-oriented_architecture

答案 1 :(得分:2)

使用数据库进行集成很多次都不是一个好主意

  1. 使用数据库时,您访问其他应用程序的数据层 - 您无法访问业务层(除非作为存储过程实现)

  2. 直接访问数据库时,无法更改数据库架构而无需更新其他应用程序

  3. 这些只是几个例子 - 还有更多

答案 2 :(得分:1)

您通常会使用数据库作为服务的存储机制 - 它不是SOA与数据库的选择 - 这是一个“我是否需要在组织范围之外公开我的数据/服务?”的问题。是? - >使用服务。没有? - >只需要一个数据库。