WCF Transports ( mainly TCP ) : Benefits ?

Aug 27, 2010 at 8:52 PM

Hi there,

Part I.

What are the main benefits of the WCF transports?

Part II.

I am creating an XcoAppSpace , which I'll refer to as XcoService, with the wcf-tcp transport.

var space = new XcoAppSpace("wcf.port=9001")

Now, I am curious if from another project, I can reference this XcoService, just as I would a regular WCF Service Reference.  For example, I'd like to reference it from a Silverlight Application.

Is this possible ?

 

Thanks.

Coordinator
Aug 30, 2010 at 7:46 AM
Edited Aug 30, 2010 at 7:47 AM

Hi,

1) The main benefit of WCF against the TCP transport services surely is its configurability, e.g. for transport security, maximum message size, binding, port sharing, ...
Other than that there is no big difference between the two if you want to communicate via TCP.

2) It should be possible, although I never tried it out. A problem could be that our WCF service currently doesn't have a metadata exchange endpoint.
What I see as a bigger problem is that if you do that, you would have to interpret all the appspace messages yourself and simulate things like the worker sessions and remote port ids.
As for Silverlight, we are planning to build an appspace version for Silverlight in the future. The biggest problem whith this is that the CCR currently doesn't support Silverlight (which probably won't change in the next months).

Hope I could help you!

Thomas

Aug 29, 2011 at 5:51 PM

I know the thread is a little dated, but had a relating question come up.

 

problem )  I have an XCoord appspace which publishes some data.  I am looking to publish this data to a WCF service via TCP (named pipes,etc.).

q1]  In this scenario can I utilize the WCF transport on my XCoord appspace to be named pipes, to then more easily communicate with the WCF service? (i.e. Is it transparent to go from XCoord ---- (tcp) ------> WCF  )

q2] My gut tells me that the answer to q1 is "no".  So to intergrate an XCoord appspace with WCF service, it seems maybe two options:

a. )  XCoord push data to MSMQ, then WCF service pulls data off MSMQ to process, is this feasible ?

b.) I think the most simplistic, introduce XCoord into the WCF service, so we would have XCoord -> XCoord wrapped by WCF (i.e. XCoord as part of the WCF service can consume the data and push up to WCF service in correct format). Feasible ?

 

Thanks.

Coordinator
Aug 31, 2011 at 9:36 AM

Hi,

I am not completely sure if I understand what you want to do. Could you describe your scenario in more detail?

So far I understand: You internally use the appspace, but want to have a publically accessible WCF service that gives access to data from within the appspace.

In this case, I would answer q1 with no, and also suggest that the easiest way would be what you wrote in q2 b - so you would need to build a WCF service that internally communicates with an appspace worker. This could simply be implemented as a "WCF Service to AppSpace Worker bridge", mapping every WCF service operation to a certain appspace worker message. Something like that:

[OperationContact]
public string Ping(string message) //this is the WCF service method
{
  var responsePort = new Port<string>();
  pingworker.Post(new PingRequest(message, responsePort); //map the request to an appspace worker message
  var response = responsePort.TestSync(...timeout...); //wait for a response from the worker
  return response;
}

Best regards
Thomas