如何设置前端程序和后端程序之间的通信

时间:2014-05-30 16:03:34

标签: perl jsp ipc frontend backend

我正在开发一个perl后端项目,该项目根据JSP Web应用程序提供的输入执行操作。两者都在基于Linux的服务器上运行。执行请求的操作后,后端需要向前端发送确认/确认 - 这需要实时发生。

我被建议使用文件作为这些前端和后端程序之间的通信手段。根据设计,有一个文件用于前端到后端消息,另一个用于反向,即后端到前端消息。两者都将由前端/后端进程连续读取,这些进程将根据从这些文件中读取的控制消息采取适当的操作。

尚未编写此代码,因为我仍然不确定这是否是最好的方法。我听说过进程间通信但不确定如何在我的情况下实现它。我真的很擅长这种事情,我正在寻找建议/建议或一个很好的参考,这将指出我朝着解决这个问题的正确方向。

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您可以在服务器上运行两个单独的应用程序。

  1. 应用程序A是一个应用程序服务器或servlet引擎(例如Tomcat),它承载由JSP页面组成的Web应用程序。
  2. 应用程序B是一些基于PERL的后端应用程序。
  3. 现在A想要与B.正确沟通?

    我同意BarneySchmale及其评论。我不会基于输入/输出文件实现通信。首先,因为这会强制您使两个应用程序对相同的文件具有读/写访问权限,这使得设置不具有很高的可伸缩性。其次,因为你总是要监听文件的变化。以高效的同步通信方式实现这一点可能很棘手。

    我的建议是通过从应用程序A到B的HTTP调用进行通信。例如,您可以使用RESTful方法。应该有大量的库来帮助您实现这一点。它是可扩展的,意味着如果您决定将应用程序B放在不同的服务器上,它仍然有效。您可以在它们之间放置防火墙,切换到安全通信,没问题。并且它相对容易调试。

    当然,在选择最终架构之前还有一些问题需要考虑,例如:

    • 方向只是一种方式:前端向后端发送请求,后端发送响应,还是有后端必须实例化通信的情况?
    • 如果后端关闭或没有响应,会发生什么?前端是否必须对请求进行排队,或者是否足以在前端显示错误?
    • 您是否真的需要同步通讯?有时异步调用更加用户友好,因为前端不会被迫等待响应。

    当然,如果你从异步通信开始,你必须有某种排队。或者甚至是应用程序A和B之间的消息代理,如果它变得复杂。