2010-10-18 134 views
6

我有一个部署并可以使用的Web服务。客户端应用程序将同步使用此服务并且非常频繁。从Web服务返回的数据量也相当可观。Web服务客户端设计模式(最佳实践)

Web服务客户机是一个Web应用程序(的liferay的portlet)。我已经在eclipse中用axis生成了客户端部分。

在我的第一次测试,在每一个请求,我实例化一个新的ServiceProxy并调用它的方法。我不确定这个结构的健壮性和可靠性(每次都创建一个新的代理对象)。

我把它改为静态类与单身代理,但我不知道在网络应用客户端的并发呼叫(并发问题)会发生什么。

我想设计解耦从Web服务客户端我的web应用程序,并有类似的客户端代理缓存(没有数据缓存为我的应用程序是实时的)或一些类似的事情。

我觉得应该有一个设计模式或Web服务客户端部分的最佳做法。

回答

1

看起来你的web服务使用HTTP协议,所以没有理由有一些代理缓存或什么的,连接在每次调用创建,所以你可以同时调用一次初始化的WS客户端实例。

但无论如何,你将支付200毫秒每个呼叫(从我的做法),这主要是XML处理,如果网络是超级。

+0

Zaletniy,谢谢。一个月后它终于抓住了一些人的注意!为了改写你说的话,可以让每个客户端使用一个单例代理对象来访问服务吗? – 2010-11-18 14:21:36

+0

是,n.p.我认为。此外,我想建议做一些沉重的多线程测试,因为我已经面临当XML处理框架被宣布为线程安全,但实际上并发问题来了。 – zaletniy 2010-11-22 16:57:15