java web服务对.net应用程序的异步调用

java web服务对.net应用程序的异步调用,java,vb.net,web-services,asynchronous,Java,Vb.net,Web Services,Asynchronous,场景: 有一个java库可以帮助异步地侦听某些 系统事件。我计划使用已经实现的异步 来自vb.net项目的功能。 我计划通过以下方式解决这一问题: 围绕java库编写web服务 将该服务的引用添加到.net应用程序 web服务将作为.net应用程序在tomcat上本地运行。我面临的问题是如何使web服务与.net应用程序异步通信?.net应用程序是否应该阻止并等待web服务?如果是,如何阻止和等待 我认为,首先,您需要一个异步服务通信的设计模式,它不能更好地满足您的系统需求 1-异步响应处

场景:

有一个java库可以帮助异步地侦听某些 系统事件。我计划使用已经实现的异步 来自vb.net项目的功能。 我计划通过以下方式解决这一问题:

  • 围绕java库编写web服务

  • 将该服务的引用添加到.net应用程序

  • web服务将作为.net应用程序在tomcat上本地运行。我面临的问题是如何使web服务与.net应用程序异步通信?.net应用程序是否应该阻止并等待web服务?如果是,如何阻止和等待


  • 我认为,首先,您需要一个异步服务通信的设计模式,它不能更好地满足您的系统需求

    1-异步响应处理程序

    应用程序创建一个单独的线程来处理服务器响应,让主线程自由地执行其他任务。当响应到达时,主线程被通知接收响应。有两种实现策略:池和回调。使用池,主线程检查第二个线程中的响应,直到响应可用。通过回调,第二个线程使用回调方法通知主线程

    2-请求/确认

    这种模式是基于服务器参与来实现异步通信的。不是将进程拆分为两个客户端线程,而是将进程拆分为客户端和服务器之间的两个不同事务。这种模式需要某种关联标识来关联请求和响应事务。消息传递子系统用于实现更大的可伸缩性和可用性

    可以使用异步响应处理程序/回调策略实现一个简单的解决方案。为此,服务提供者(java)可以是一个简单的jax ws web服务。有一个例子

    参考文献:

    (异步回调委托) (服务消费者)
    (ServiceProducer)

    我认为,首先,您需要一个异步服务通信的设计模式,它不能更好地满足您的系统需求

    1-异步响应处理程序

    应用程序创建一个单独的线程来处理服务器响应,让主线程自由地执行其他任务。当响应到达时,主线程被通知接收响应。有两种实现策略:池和回调。使用池,主线程检查第二个线程中的响应,直到响应可用。通过回调,第二个线程使用回调方法通知主线程

    2-请求/确认

    这种模式是基于服务器参与来实现异步通信的。不是将进程拆分为两个客户端线程,而是将进程拆分为客户端和服务器之间的两个不同事务。这种模式需要某种关联标识来关联请求和响应事务。消息传递子系统用于实现更大的可伸缩性和可用性

    可以使用异步响应处理程序/回调策略实现一个简单的解决方案。为此,服务提供者(java)可以是一个简单的jax ws web服务。有一个例子

    参考文献:

    (异步回调委托) (服务消费者)
    (服务生产者)

    你计划建立一个长时间运行的过程,考虑使用一些像JBPM或AcvivTM之类的工作流引擎。由于您的调用将是无状态的web服务&您希望有更好的回调,因此可以选择创建持久的长时间运行的工作流,因为它们将处理大多数设计和体系结构问题,否则您将最终处理它。 e、 g.一系列问题 -请求与响应之间的相关性 -系统重新启动时数据丢失 -应用程序被数据同步弄得不知所措


    轮询和CALBACK只是进程间通信的机制,但您需要处理ReqRESP相关性,同时保证通信的可靠性。

    < P>您计划构建一个长时间运行的进程,考虑使用JBPM或AcviTi等工作流引擎。由于您的调用将是无状态的web服务&您希望有更好的回调,因此可以选择创建持久的长时间运行的工作流,因为它们将处理大多数设计和体系结构问题,否则您将最终处理它。 e、 g.一系列问题 -请求与响应之间的相关性 -系统重新启动时数据丢失 -应用程序被数据同步弄得不知所措


    轮询和回调只是进程间通信的机制,但您需要处理req-resp相关性,并确保通信的可靠性。

    谢谢,我被标记弄丢了。让我们知道哪一个是消费者,哪一个是服务提供者。您想围绕java库编写web服务,这意味着java api将为.Net应用程序提供服务。在这种情况下.net api将成为消费者,这是您想要的吗?Som,您是否可以重新表述您的问题,因为我觉得它不太清楚。谢谢,我对标记感到迷茫。让我们知道哪一个是消费者,哪一个是服务提供商。您想围绕java库编写web服务,这意味着java api将为.Net应用程序提供服务。在这种情况下.NETAPI将成为消费者,这是您想要的吗?Som,您是否可以重新表述您的问题,因为我觉得它不是很清楚。