如何将桌面应用程序公开为安全Web服务?

时间:2011-05-13 18:54:29

标签: web-services soap windows-services soa

Window桌面应用程序提供C ++ API,提供一系列客户信息,例如名称和地址。我想将此公开为具有安全性的SOAP Web服务,以便此Web服务的授权客户端(来自基于ESB的远程服务器Linux / Java)可以在他们想要的SOA实现(基于Java)中获取此信息。 桌面应用程序没有标准数据库。它在内部存储数据。它基本上是旧的定制CRM应用程序,安装在每个代理的PC盒上。每个代理商都有自己的客户列表。

完成此任务的步骤是什么?

我是否需要将其作为Windows服务运行?

1 个答案:

答案 0 :(得分:1)

简而言之,是的,您可以通过SOAP Web服务从桌面应用程序公开数据。使用C#和.NET更容易,但从C ++开始并非不可能。您需要采取哪些步骤取决于您正在开发的平台。

粗略 -

实现支持SSL的端点,客户端可以连接到桌面应用程序(使用C ++中的套接字或使用.NET的HTTPListener)。

编写可以接收和分发SOAP请求的代码。

处理SOAP请求并返回格式正确的SOAP响应。

处理WSDL请求。

实施安全机制(基于cookie或其他方式)。

使用.NET,其中大部分已经在平台代码中,您只需要将各个部分放在一起。使用C ++,您可能会找到一些第三方库,但基本上您将自己编写。

如果您希望在桌面用户未登录并运行桌面应用程序时数据可用,则只需实现Windows服务。这里的挑战是您必须确保Windows服务可以访问桌面应用程序正在使用的相同数据。

另一种策略是使用C ++ API和Interop从桌面应用程序访问数据,并将Web服务实现为IIS上托管的asmx标准。