2015-04-29 56 views
0

我是SOAP和Web服务(2天体验)的新手。使用SOAP Web服务从SQL Server 2008数据库获取数据

我使用博尼塔开放解决方案作为BPMS,其中我有一个'WebServer SOAP 1.2'连接器。我需要使用SOAP从/将数据写入/写入数据库。我不想使用基于JDBC的'SQL Server'连接器,因为系统将紧密耦合。

在SQL Server 2008中是否有任何已经实现的SOAP Web服务来做到这一点,还是应该开发自己的?如果我应该开发自己的,我猜测最好的方法是使用ASP.NET,对吗?

+0

没有(也不应该有),并且你想开发你自己的,使用WCF。您并不想仅仅通过Web服务暴露整个数据库。创建一个服务来暴露_only_什么您的BPMS系统需要。 –

+0

我可以将WCF与SOAP结合使用吗?我读过WCF使用开放数据协议这是一个RESTful数据访问协议。 我需要使用SOAP,因为我的BPMS仅在其连接器中提供此协议。 –

+0

WCF支持许多协议,包括SOAP和REST。你必须一直在阅读“[WCF数据服务](https://msdn.microsoft.com/en-us/library/cc668792.aspx)”。 –

回答

1

在你做什么事情之前,你需要确定BPMS系统需要哪些数据以及它需要什么访问。例如,它可能需要读取一些数据,但读取和写入其他数据。您的服务应该只暴露实际需要的数据和操作,仅此而已。

您的数据是宝贵的 - 不要公开这些数据。

我建议您在数据库优先模式下使用实体框架,但只将所需的表格添加到模型中。然后,通过删除不需要的列简化模型,简化关系等。因此,您公开了一种对消费者有意义的数据概念模型,而不是公开数据库的每个实现细节(您是否真的需要公开每个联结表,例如?)

然后编写一个使用Entity Framework来完成数据访问的艰巨工作的WCF服务非常简单。

+0

我仍然困惑为什么我无法开发独立于数据库的Web服务。我的意思是没有坚持微软的WCF,例如JAX-WS(事实上,在新的环境/框架下开发更加困难)。确定它可能是有风险的,但是对于WS-Security支持,我认为不应该有问题,应该如何? –

0

即使已弃用,Sql Server 2008也具有本机SOAP Web服务(请参阅Native XML Web Services: Deprecated in SQL Server 2008)。

您需要权衡Sql Server升级与开发(维护)定制服务的成本之间的风险。

+0

因此,如果我使用本机XML Web Services,则会紧密耦合到SQL Server的版本;而如果我使用WCF,将会紧密耦合到只使用SQL Server数据库...? –

+1

如果您使用WCF,则不会有耦合。只要您不更改服务和数据协定(WSDL),您可以在每次需要时更改Web服务实现,也可以将SQL Server替换为其他数据库服务器。 – MatteoSp

+0

我以为WCF只能使用SQL Server。感谢您的澄清。 –

相关问题