我们有一个带GUI的程序( A.exe )和一个用一些文本做NLP的工具栏。 在该工具栏中,我们有函数A ,它通过添加一些xml标记来转换文本。 有人在这里(老板)希望我创建一个名为功能A 的Web服务。它告诉了我Dynamic Data Exchange(几年前他用过它),我看到SendMessage之类的东西。
互联网上的某人将使用Web服务:发送文本并将结果作为 xml 。当有人调用WS时,GUI程序无法启动,因为它太慢,所以某人建议一次性启动此 A.exe ,并且WS会询问这个发送DDE电话 A.exe 。我不知道 A.exe 在并发呼叫时会如何反应。
Web服务将:
我想注意:
谢谢。
PS:构建使用UI调用服务器端程序的WS是一种异端,不是吗?
答案 0 :(得分:1)
这个问题的答案实际上取决于你想要完成的事情。您的函数是否更改来自外部数据源(如数据库)的数据,或者您是否在应用程序中调用函数?
我将从以下问题开始。
1)按钮的功能是什么?是否可以将其功能转移到服务中并在多个应用程序之间共享?
2)您可以将功能放在DLL中并在两个应用程序之间共享吗?
3)这两个应用程序是否真的需要相互通信?
如果两个进程必须相互通信,并且您只希望应用程序A响应来自应用程序B的消息而行为,请考虑使用命名管道进行TCP / IP通信。这在.NET中非常简单,并提供了进程之间的快速通信。
更新:以下是使用命名管道的信息链接:http://msdn.microsoft.com/en-us/library/bb546085.aspx。
更新2:这是您更新问题后的更新。你有权访问A.exe的源代码吗?如果这样做,您有两种选择:1)将该逻辑移动到您的服务中;或2)修改A.exe以接受命令行参数,以便您的服务可以调用该过程并获取结果。如果您没有源代码而且无法从命令行调用A.exe,那么除了您自己在Web服务可以调用的表单中自己编写进程外,没有什么可以做的。
P.S。您不必担心并发调用,因为每个服务器请求都将执行单独的进程。