473,549 Members | 2,982 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Need Asynchronous WCF solution which allows for multiple responses

Bear with me because we are new to WCF and have been going through
documentation and samples trying to absorb as much as possible in a
short amount of time. Any suggestions would be much appreciated. We
would of course rather start off on the right path instead of learning
later that there's a much better and easier solution, but get stuck
with our original implementation.

We are working on designing a client server solution using WCF where
we will have at most 20 clients calling the server with a requests
using NetTcp. Because of the amount of data that can be returned and
usability we want to make this an asynchronous call as well as allow
the server return chunks of data at a time.

- It looks like the Duplex calls only allow for a single response from
the server, so this option is out.
- We have considered creating an Endpoint on both the server and the
client. When requesting data from the server the client would pass
it's Endpoint information to the server. The server would then create
a channel using the client Endpoint info and send responses to the
client in chunks.
- We have also considered using a pattern similar to reading data from
a file where the client will request chunks of data from the server in
multiple calls until it receives an EOF flag. This would need to be
asynchronous as well. This would keep us from creating an Endpoint on
each client. I'm not sure if this is a benefit, but it's one less
thing to do.
- Finally, what would be the best way to pass back the data. We've
created a simple data container, which looks like a basic dataset and
is decorated to allow serialization by WCF. It seems like it would be
sufficient.

Again, any suggestions to get us on the right path earlier rather than
later would be very much appreciated.

Jayson

Mar 8 '07 #1
7 6308
<jt*********@ya hoo.comwrote in message
news:11******** *************@t 69g2000cwt.goog legroups.com...
Bear with me because we are new to WCF and have been going through
documentation and samples trying to absorb as much as possible in a
short amount of time. Any suggestions would be much appreciated. We
would of course rather start off on the right path instead of learning
later that there's a much better and easier solution, but get stuck
with our original implementation.

We are working on designing a client server solution using WCF where
we will have at most 20 clients calling the server with a requests
using NetTcp. Because of the amount of data that can be returned and
usability we want to make this an asynchronous call as well as allow
the server return chunks of data at a time.

- It looks like the Duplex calls only allow for a single response from
the server, so this option is out.
- We have considered creating an Endpoint on both the server and the
client. When requesting data from the server the client would pass
it's Endpoint information to the server. The server would then create
a channel using the client Endpoint info and send responses to the
client in chunks.
- We have also considered using a pattern similar to reading data from
a file where the client will request chunks of data from the server in
multiple calls until it receives an EOF flag. This would need to be
asynchronous as well. This would keep us from creating an Endpoint on
each client. I'm not sure if this is a benefit, but it's one less
thing to do.
- Finally, what would be the best way to pass back the data. We've
created a simple data container, which looks like a basic dataset and
is decorated to allow serialization by WCF. It seems like it would be
sufficient.

Again, any suggestions to get us on the right path earlier rather than
later would be very much appreciated.

Jayson

Please post WCF related questions to the WCF forum at :
http://forums.microsoft.com/MSDN/Sho...D=118&SiteID=1

Willy.
Mar 8 '07 #2


<jt*********@ya hoo.comwrote in message
news:11******** *************@t 69g2000cwt.goog legroups.com...
Bear with me because we are new to WCF and have been going through
documentation and samples trying to absorb as much as possible in a
short amount of time. Any suggestions would be much appreciated. We
would of course rather start off on the right path instead of learning
later that there's a much better and easier solution, but get stuck
with our original implementation.

We are working on designing a client server solution using WCF where
we will have at most 20 clients calling the server with a requests
using NetTcp. Because of the amount of data that can be returned and
usability we want to make this an asynchronous call as well as allow
the server return chunks of data at a time.
How much data are you talking about? Have you tested using a simple duplex
contract using a binary formatter and tcp transport?

David

Mar 8 '07 #3
On Mar 8, 10:46 am, "Willy Denoyette [MVP]"
<willy.denoye.. .@telenet.bewro te:
<jtbjurst...@ya hoo.comwrote in message

news:11******** *************@t 69g2000cwt.goog legroups.com...
Please post WCF related questions to the WCF forum at :http://forums.microsoft.com/MSDN/Sho...D=118&SiteID=1

Willy.
Will do. Thanks.

Mar 8 '07 #4
On Mar 8, 11:06 am, "David Browne" <davidbaxterbro wne no potted
m...@hotmail.co mwrote:
<jtbjurst...@ya hoo.comwrote in message

news:11******** *************@t 69g2000cwt.goog legroups.com...
How much data are you talking about? Have you tested using a simple duplex
contract using a binary formatter and tcp transport?

David
We are estimating that the larger responses could be around 75 mb. The
size is definitely an issue but the server accumulates the data in
chunks and it also can take while to gather all the data. So, getting
the data back in subsets is ideal.

Mar 8 '07 #5
Thus wrote jt*********@yah oo.com,
Bear with me because we are new to WCF and have been going through
documentation and samples trying to absorb as much as possible in a
short amount of time. Any suggestions would be much appreciated. We
would of course rather start off on the right path instead of learning
later that there's a much better and easier solution, but get stuck
with our original implementation.

We are working on designing a client server solution using WCF where
we will have at most 20 clients calling the server with a requests
using NetTcp. Because of the amount of data that can be returned and
usability we want to make this an asynchronous call as well as allow
the server return chunks of data at a time.
Asynchronous calls and asynchronous service execution are local phenomenon
and are not related to what happens on the wire or what metadata a service
exposes.

As far as chunking is concerned -- there are several implementations available
on the Web, but probably you want to use streaming instead, which is built-in.
- It looks like the Duplex calls only allow for a single response from
the server, so this option is out.
I'm not sure what you mean by "single message". A service can implement only
one Duplex contract, but you can host multiple Duplex bound services in a
single server application.
- We have considered creating an Endpoint on both the server and the
client. When requesting data from the server the client would pass
it's Endpoint information to the server. The server would then create
a channel using the client Endpoint info and send responses to the
client in chunks.
This gives you more flexibility regarding contract design, but you must implement
a full blown service host in your client application.
- We have also considered using a pattern similar to reading data from
a file where the client will request chunks of data from the server in
multiple calls until it receives an EOF flag.
That's ugly, as it exposes technical communication details in your service
contracts. That's what WCF actually tries to avoid.

[...]
- Finally, what would be the best way to pass back the data. We've
created a simple data container, which looks like a basic dataset and
is decorated to allow serialization by WCF. It seems like it would be
sufficient.
How did you allow serialization? In case of doubt, use a DataContract.

Cheers,
--
Joerg Jooss
ne********@joer gjooss.de
Mar 8 '07 #6
On Mar 8, 1:08 pm, Joerg Jooss <news-re...@joergjoos s.dewrote:
Thus wrote jtbjurst...@yah oo.com,
Bear with me because we are new to WCF and have been going through
documentation and samples trying to absorb as much as possible in a
short amount of time. Any suggestions would be much appreciated. We
would of course rather start off on the right path instead of learning
later that there's a much better and easier solution, but get stuck
with our original implementation.
We are working on designing a client server solution using WCF where
we will have at most 20 clients calling the server with a requests
using NetTcp. Because of the amount of data that can be returned and
usability we want to make this an asynchronous call as well as allow
the server return chunks of data at a time.

Asynchronous calls and asynchronous service execution are local phenomenon
and are not related to what happens on the wire or what metadata a service
exposes.

As far as chunking is concerned -- there are several implementations available
on the Web, but probably you want to use streaming instead, which is built-in.
- It looks like the Duplex calls only allow for a single response from
the server, so this option is out.

I'm not sure what you mean by "single message". A service can implement only
one Duplex contract, but you can host multiple Duplex bound services in a
single server application.
- We have considered creating an Endpoint on both the server and the
client. When requesting data from the server the client would pass
it's Endpoint information to the server. The server would then create
a channel using the client Endpoint info and send responses to the
client in chunks.

This gives you more flexibility regarding contract design, but you must implement
a full blown service host in your client application.
- We have also considered using a pattern similar to reading data from
a file where the client will request chunks of data from the server in
multiple calls until it receives an EOF flag.

That's ugly, as it exposes technical communication details in your service
contracts. That's what WCF actually tries to avoid.

[...]
- Finally, what would be the best way to pass back the data. We've
created a simple data container, which looks like a basic dataset and
is decorated to allow serialization by WCF. It seems like it would be
sufficient.

How did you allow serialization? In case of doubt, use a DataContract.

Cheers,
--
Joerg Jooss
news-re...@joergjoos s.de
Thanks. I'll have to look into streaming our return data. Are there
any examples or articles out there for this?

Mar 12 '07 #7
Thus wrote jt*********@yah oo.com,

[...]
Thanks. I'll have to look into streaming our return data. Are there
any examples or articles out there for this?
MSDN and the Windows SDK contain sample code. You can find more information
at http://msdn2.microsoft.com/en-us/library/ms731913.aspx. You may also want
to check out both Nicholas Allen's blog and Kenny Wolf's blog.

Cheers,
--
Joerg Jooss
ne********@joer gjooss.de
Mar 13 '07 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
10583
by: Josh | last post by:
A while back I started a project to write a mail server. I was doing this in c++ and found that I/O completion ports were the best solution for the project. I've since decided to port my application to the .NET framework and noticed that the concept of an I/O completion port doesn't exist natively in the framework. It does have similar...
16
2193
by: Joel Finkel | last post by:
Folks, I am confused as to how to implement the following solution. I have a series of processing steps, each of which contains similar features (forms, etc). Therefore, I create a base class, Step, and subclass from that for specific steps. The Step class has a method, Execute(), which can return either Success or Failure. I have a...
1
1543
by: Julian Hershel | last post by:
Reading about asynchronous programming (ms-help://MS.NETFrameworkSDK/cpguidenf/html/cpconasynchronousdesignpatterno verview.htm) I could not clarify some doubts. Hope you can help me. 1) Are asynchronous programming and multithreaded programming two different pictures? As I read the help topic above it is not clear to me if the design...
3
4387
by: Richard Lewis Haggard | last post by:
We are having a lot of trouble with problems relating to failures relating to 'The located assembly's manifest definition with name 'xxx' does not match the assembly reference" but none of us here really understand how this could be an issue. The assemblies that the system is complaining about are ones that we build here and we're not changing...
3
2288
by: Maya Sam | last post by:
Hi all, I have the following code I created to do multiple websites data crawling using Asynchronous Thread calling it works fine however I'm confused when it comes to make the calling thread stops or sleep until all other threads within the threadpool have all finished their jobs. what happens at the moment is that every other thread...
0
1043
by: Paroxsitic | last post by:
Below is my VB.net 2003 code for simply looking at a page from a website with different users with cookies and a get command. More in the program I use the same technique to post actions to the website with multiple users. Anyways. As you can see I can correctly keep track of the HTML for each index by passing the index in and then storing...
3
1298
by: =?Utf-8?B?Q0xFQVItUkNJQw==?= | last post by:
We have an asp.net application that will also use MSMQ. When a client makes a request, we want to check several databases and put each response in MSMQ. We don't want the client to wait for all responses to come back. We were wondering if there is some component (maybe activex) that will sit on the client and listen for call backs from the...
3
2847
by: intrader | last post by:
What I have is a class A with a method Foo. I would like to create a thread that instances A and then calls Foo asynchronously while performing other duties. I think that the solution is to write an asynchronous version of Foo so that the caller can pass a callback as in the signature: public static IAsyncResult Foo( FooParams fooParams,...
5
2001
by: wink | last post by:
Hello, I'm getting my feet wet in Python and thought I'd try to see how well Python works for asynchronous messaging. I've been using asynchronous messaging for 5 years and find it advantageous for many things. In the scheme I use communication is not only asynchronous but it is also non- blocking and inherently serialized via a queue. ...
0
7518
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main...
0
7446
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language...
1
7469
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For...
0
7808
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the...
0
5087
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert...
0
3498
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in...
0
3480
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
1935
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
1
1057
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.