2011-05-13 53 views
0

Window桌面應用程序提供C++ API,提供一系列客戶信息,如姓名和地址。我想將它作爲具有安全性的SOAP Web服務公開,以便此Web服務的授權客戶端(通過ESB的基於Linux/Java的遠程服務器)可以隨時在SOA實現(基於Java)中獲取此信息。 桌面應用程序沒有標準數據庫。它在內部存儲其數據。其基本上是舊的定製的CRM應用程序,安裝在每個代理的PC機箱上。每個代理都有自己的客戶列表。如何將桌面應用程序公開爲安全Web服務?

完成此任務的步驟是什麼?

我是否需要將此服務作爲Windows服務運行?

回答

1

簡而言之,是的,您可以通過SOAP Web服務從桌面應用程序公開數據。使用C#和.NET更容易,但從C++開始並非不可能。您需要採取的步驟取決於您正在開發的平臺。

大致 -

(當使用C++的插座或使用HTTPListener .NET)實現支持SSL端點,在這裏客戶可以連接到您的桌面應用程序。

編寫可以接收和發送SOAP請求的代碼。

處理SOAP請求並返回格式正確的SOAP響應。

處理WSDL請求。

實現安全機制(基於cookie或其他方式)。

使用.NET,大部分是在平臺的代碼已經,你就必須把拼在一起。使用C++,你可能會發現一些第三方庫,但基本上你會寫自己的。

你只需要,如果你想要的數據可用,而桌面用戶沒有登錄並運行你的桌面應用程序中實現一個窗口服務。這裏面臨的挑戰是您必須確保Windows服務可以訪問桌面應用程序正在使用的相同數據。

另一種策略是從使用C++ API和互操作的桌面應用程序訪問數據,並實現Web服務作爲一個標準出來託管在IIS盒子ASMX的。

+0

根據您的信息,看起來windows服務是最好的選擇。開發使用C++ API從桌面應用程序訪問信息的C++程序不是問題。這個C++程序是所述Windows服務的一部分。但是,最大的問題是,這個Windows服務怎樣才能使用基於SOAP的Web服務(不使用.NET),以便遠程客戶端可以與此Web服務通信以獲取信息? – ace 2011-05-13 19:57:34

+0

以最基本的形式實現Web服務只需要打開一個偵聽套接字並在其上打開soap格式的http和https請求。我從事C++工作已經有一段時間了,但我相信你可以在C++中找到SOAP解析器的實現,並且應該有相當多的「如何用C++編寫Web服務器」代碼。挑戰是找到一個「免費」和安全的。 – 2011-05-13 20:16:18

相關問題