代码之家  ›  专栏  ›  技术社区  ›  Blorgbeard

网站与win32可执行文件通信的标准方法是什么?

  •  3
  • Blorgbeard  · 技术社区  · 17 年前

    delphi代码需要在内存中维护一个特殊交易列表,定期从数据库中刷新。所以它不可能每次都被简单地执行或者像那样简单的事情。

    我不知道这个网站是用什么编写的,甚至不知道它在哪个http服务器下运行,所以我只是在寻找一些想法或标准方法。

    7 回复  |  直到 13 年前
        1
  •  3
  •   JP Alioto    17 年前

    听起来win32应用程序已经作为Windows服务在机箱上运行了。因此,如果您不能修改该服务,您将不得不处理它希望接受和响应请求的任何方式。这可以通过套接字或某些更高级别的通信协议(如web服务)实现。

    你可以做几件事。编写一个知道如何与服务通信的程序集,并让您的网站使用该程序集。或者,您可以构建一个垫片服务,该服务知道如何与遗留服务通信,但通过更高级别的协议(如web服务)公开通信。无论哪种方法都有好处,可以将并发性、线程和通信问题隐藏在一个易于调用的接口后面,但后一种方法将使以后的每个人都更容易与服务通信。

        2
  •  3
  •   kevin42    17 年前

    如果您可以修改delphi应用程序以接受XML请求并通过TCP套接字(理想情况下使用HTTP协议)响应XML应答,那么您将能够相对轻松地使其与大多数web服务器框架进行互操作。但如何实现集成的具体细节将取决于它所使用的语言/框架。

    如果web服务器在windows上,您可以将您的delphi应用程序编译为可返回XML或HTML的DLL,并将参数作为URL或POST操作的一部分。关于为web服务器创建Delphi DLL的一些详细信息 are here

        3
  •  2
  •   skamradt    17 年前

    另一个选项是,如果您在IIS下的同一个框中运行这两个对象,则创建一个COM/Automation对象,然后通过服务器端脚本(ASP)调用该对象。如果应用程序是ASP.NET应用程序,那么我将使用PRISM将代码移植到程序集中。

        4
  •  2
  •   SeanX    17 年前

    RemObjects Sdk . 这些计算作为soap方法公开,因此几乎任何东西都可以访问它。

    没有必要在服务中使用RemObjects,但它可以更轻松地处理许多底层管道。客户端不需要重新对象,它们只需要能够调用soap方法。几乎任何编程语言都能做到这一点。

    网上有很多例子。开始阅读的几个地方是 About.Com Dr Bob .

        5
  •  1
  •   smok1    17 年前

    将此应用程序撕入Windows服务。编写将与windows服务通信的Web服务。您应该花一些时间设计Web服务,因为此Web服务将成为您的一致界面,屏蔽旧的Delphi应用程序。因此,在将来,无论何时您想要编写web应用程序、移动应用程序或您想象的任何东西,您都将拥有一个一致的接口XML web服务。

        6
  •  1
  •   mjn anonym    13 年前

    将web应用程序与后台服务集成的一种流行方法是MessageBroker。

    消息流将是:

    • 一个(或者,在高可用性/负载平衡环境中更多)Delphi服务处理消息:拉取下一个传入消息,通过将参数提供给计算引擎来处理它,并将“计算结果消息”发送回web服务器

    • web服务器可以同步等待响应(并丢弃没有匹配关联ide的响应)并构建结果HTML文档,或者继续执行其他任务并在单独的线程中异步接收计算结果,例如在基于Ajax的web应用程序中

    有关Dopplr图像服务的介绍,请参阅本幻灯片:

    http://de.slideshare.net/carsonified/dopplr-its-made-of-messages-matt-biddulph-presentation

    made of messages by matt biddulph

        7
  •  0
  •   Remi Lemarchand    17 年前

  • 直接套接字这是最难的,因为您必须自己进行编组/身份验证
  • RPC的工作原理很好,但不是微不足道的
  • WCF-但是你能从用Delphi编写的Windows服务调用它吗?