2015-04-29 54 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。感謝您的澄清。 –

相關問題