gpt4 book ai didi

java - 从 Java Web 服务到 .NET 应用程序的异步调用

转载 作者:行者123 更新时间:2023-11-29 03:18:22 24 4
gpt4 key购买 nike

场景:

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

  1. 围绕java库编写一个web服务

  2. 将该服务的引用添加到 .net 应用。

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

最佳答案

我相信您首先需要一种异步服务通信的设计模式,以便更好地满足您的系统需求。

1 - 异步响应处理程序

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

2 - 请求/确认

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

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

引用资料:

http://www.servicedesignpatterns.com/WebServiceInfrastructures/AsyncResponseHandler http://www.servicedesignpatterns.com/ClientServiceInteractions/RequestAcknowledge http://msdn.microsoft.com/pt-br/library/system.asynccallback(v=vs.110).aspx (异步回调委托(delegate)) http://msdn.microsoft.com/en-us/library/wyd0d1e5(v=vs.100).aspx (服务消费者) http://java.dzone.com/articles/jax-ws-hello-world (服务提供者)

关于java - 从 Java Web 服务到 .NET 应用程序的异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25140561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com