By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,353 Members | 1,555 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,353 IT Pros & Developers. It's quick & easy.

Web Service Architecture question

P: n/a
I have a Web Service that I am reponsible for that we use for data
integration purposes. Recently I have been tasked with sending some of this
data to a third party. Because they need to receive the data in real time.
They have requested that I subscribe to a Web Service that they have
published. The only problem is that they often take longer than 30 seconds
to process my data before I get a response back from them. This is taking
far too long and because this is happening synchronously it is causing my
other clients that consume my Web Service to time out.

I have thought of a few solutions to solve this but wondered if anybody out
there had any good ideas that I may not have thought of.

One idea is to just serialize the data that I get on the Web Server to a
well known directory. Then I register a file watcher event in an NT service
that basically spawns a thread to send them the data via their Web Service
call. One of the nice things about this is that I can keep the file around
until I recieve back from them a succsessful get signal.

--
Thank you,
John
Nov 23 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Hi John,

Welcome to webservice newsgroup.
Regarding on the webservice long run task question here are some of my
understanding:

Since the long run part of your whole service applicaiton is in the another
remote webservice your service consumed, so our service (between that long
run service and our client proxy) will always need to wait the long run
service complete so as to deliver the final result to our client, yes?
Thus, I think the most important design decision we'd make is how will we
have our clientside user(webservcie client proxy) to consume our
service.... If we still make the client user to synchornously get the
result from our service in a single WebMethod call, then we can not avoid
the clientside user wait for long time( also occupy the ASP.NET worker
thread on our server...). So in such scenario, maybe we can consider use a
async WebMethod model, just like what provided in the .net's async method
invokation. We provide a

BeginCall .... wihch accept the client side inputs then start calling the
other remote long run service, it may take time to get the call finish...

The BeginCall return immediatly to our client and give them a sessionID or
anything else which represent a transaction identifier... Then, the client
proxy can constantly use this sessionID to query the status of the long run
task...(we need to provide a query method...)

When the client query and get the finish info from server, it call the
third method so as to actually end this transaction and return the final
result.

BTW, in your condition, is that remote service (long run) 's result
cachable? If so, we can also consider using caching to improve response
time and throughput.

Thanks,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

--------------------
Thread-Topic: Web Service Architecture question
thread-index: AcXfI+voDv3F9fTATJ6yQ9BHttFMIw==
X-WBNR-Posting-Host: 192.138.82.196
From: =?Utf-8?B?Sm9obiBB?= <i-*********@newsgroups.nospam>
Subject: Web Service Architecture question
Date: Tue, 1 Nov 2005 12:36:22 -0800
Lines: 21
Message-ID: <1F**********************************@microsoft.co m>
MIME-Version: 1.0
Content-Type: text/plain;
charset="Utf-8"
Content-Transfer-Encoding: 7bit
X-Newsreader: Microsoft CDO for Windows 2000
Content-Class: urn:content-classes:message
Importance: normal
Priority: normal
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0
Newsgroups: microsoft.public.dotnet.framework.webservices
NNTP-Posting-Host: TK2MSFTNGXA03.phx.gbl 10.40.2.250
Path: TK2MSFTNGXA01.phx.gbl!TK2MSFTNGXA03.phx.gbl
microsoft.public.dotnet.framework.webservices:8439
X-Tomcat-NG: microsoft.public.dotnet.framework.webservices

I have a Web Service that I am reponsible for that we use for data
integration purposes. Recently I have been tasked with sending some of
this
data to a third party. Because they need to receive the data in real time.

They have requested that I subscribe to a Web Service that they have
published. The only problem is that they often take longer than 30 seconds
to process my data before I get a response back from them. This is taking
far too long and because this is happening synchronously it is causing my
other clients that consume my Web Service to time out.

I have thought of a few solutions to solve this but wondered if anybody out
there had any good ideas that I may not have thought of.

One idea is to just serialize the data that I get on the Web Server to a
well known directory. Then I register a file watcher event in an NT
service
that basically spawns a thread to send them the data via their Web Service
call. One of the nice things about this is that I can keep the file around
until I recieve back from them a succsessful get signal.

--
Thank you,
John

Nov 23 '05 #2

P: n/a
Hi John,

Have you got any further ideas on this post or does the things in my last
reply helps a little? If there're anything else we can help, please feel
free to post here. Thanks,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
--------------------
X-Tomcat-ID: 145970840
References: <1F**********************************@microsoft.co m>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_0001_6994070C"
Content-Transfer-Encoding: 7bit
From: st*****@online.microsoft.com (Steven Cheng[MSFT])
Organization: Microsoft
Date: Wed, 02 Nov 2005 08:24:54 GMT
Subject: RE: Web Service Architecture question
X-Tomcat-NG: microsoft.public.dotnet.framework.webservices
Message-ID: <nz**************@TK2MSFTNGXA01.phx.gbl>
Newsgroups: microsoft.public.dotnet.framework.webservices
Lines: 220
Path: TK2MSFTNGXA01.phx.gbl
Xref: TK2MSFTNGXA01.phx.gbl
microsoft.public.dotnet.framework.webservices:8448
NNTP-Posting-Host: tomcatimport2.phx.gbl 10.201.218.182

Hi John,

Welcome to webservice newsgroup.
Regarding on the webservice long run task question here are some of my
understanding:

Since the long run part of your whole service applicaiton is in the another
remote webservice your service consumed, so our service (between that long
run service and our client proxy) will always need to wait the long run
service complete so as to deliver the final result to our client, yes?
Thus, I think the most important design decision we'd make is how will we
have our clientside user(webservcie client proxy) to consume our
service.... If we still make the client user to synchornously get the
result from our service in a single WebMethod call, then we can not avoid
the clientside user wait for long time( also occupy the ASP.NET worker
thread on our server...). So in such scenario, maybe we can consider use a
async WebMethod model, just like what provided in the .net's async method
invokation. We provide a

BeginCall .... wihch accept the client side inputs then start calling the
other remote long run service, it may take time to get the call finish...

The BeginCall return immediatly to our client and give them a sessionID or
anything else which represent a transaction identifier... Then, the client
proxy can constantly use this sessionID to query the status of the long run
task...(we need to provide a query method...)

When the client query and get the finish info from server, it call the
third method so as to actually end this transaction and return the final
result.

BTW, in your condition, is that remote service (long run) 's result
cachable? If so, we can also consider using caching to improve response
time and throughput.

Thanks,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)

--------------------
Thread-Topic: Web Service Architecture question
thread-index: AcXfI+voDv3F9fTATJ6yQ9BHttFMIw==
X-WBNR-Posting-Host: 192.138.82.196
From: =?Utf-8?B?Sm9obiBB?= <i-*********@newsgroups.nospam>
Subject: Web Service Architecture question
Date: Tue, 1 Nov 2005 12:36:22 -0800
Lines: 21
Message-ID: <1F**********************************@microsoft.co m>
MIME-Version: 1.0
Content-Type: text/plain;
charset="Utf-8"
Content-Transfer-Encoding: 7bit
X-Newsreader: Microsoft CDO for Windows 2000
Content-Class: urn:content-classes:message
Importance: normal
Priority: normal
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0
Newsgroups: microsoft.public.dotnet.framework.webservices
NNTP-Posting-Host: TK2MSFTNGXA03.phx.gbl 10.40.2.250
Path: TK2MSFTNGXA01.phx.gbl!TK2MSFTNGXA03.phx.gbl
Xref: TK2MSFTNGXA01.phx.gbl
microsoft.public.dotnet.framework.webservices:8439
X-Tomcat-NG: microsoft.public.dotnet.framework.webservices

I have a Web Service that I am reponsible for that we use for data
integration purposes. Recently I have been tasked with sending some of
this
data to a third party. Because they need to receive the data in real time.

They have requested that I subscribe to a Web Service that they have
published. The only problem is that they often take longer than 30 seconds
to process my data before I get a response back from them. This is taking
far too long and because this is happening synchronously it is causing my
other clients that consume my Web Service to time out.

I have thought of a few solutions to solve this but wondered if anybody out
there had any good ideas that I may not have thought of.

One idea is to just serialize the data that I get on the Web Server to a
well known directory. Then I register a file watcher event in an NT
service
that basically spawns a thread to send them the data via their Web Service
call. One of the nice things about this is that I can keep the file around
until I recieve back from them a succsessful get signal.

--
Thank you,
John

Nov 23 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.