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