473,387 Members | 1,504 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

Web service with Push to client ?

Hi ,

I need to develop some feature of web service that can notify client -
"Push" operation - and fast
somebody know if it's possible , and how?
When I say "Push" I mean - pure push :) , not mechanism of client checking
for messages in interval...
thanks
Aug 7 '06 #1
8 11149
Not possible with web services. Web Services must be requested in order to
be invoked.

"semedao" <se*****@community.nospamwrote in message
news:Ou**************@TK2MSFTNGP04.phx.gbl...
Hi ,

I need to develop some feature of web service that can notify client -
"Push" operation - and fast
somebody know if it's possible , and how?
When I say "Push" I mean - pure push :) , not mechanism of client checking
for messages in interval...
thanks

Aug 7 '06 #2
Hi Semedao,

I agree with Scott, from standard webservice's perspective, there is no
server-side push mechanims or callback interface. And XML webservice is a
public service which expose its functionliaty through the service
contract(WSDL document) and let various clients to consume it. The
webservice itself should not have any sense of the client consumer or
platform. However, if we want the webservice to actively push/ping client
side, it will require our server-side service has sufficient information
about the client-side's programming interface and platform, this is
somewhat violating the webservice standard.

BTW, such server-side push(to multiple clients) is quite expense especially
for internet scenario. Is the webservice in your scenario work in intranet
or internet scenario? If convenient, you can provide us some further
background info so that we can look for some other solutions according to
your scenario.
Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead
This posting is provided "AS IS" with no warranties, and confers no rights.

Aug 8 '06 #3
Hi Steven,
I need this behavior for P2P applicaiton that should be able to work also
behind NAT
if you see this article:
http://www.brynosaurus.com/pub/net/p2pnat/
We need that when client X try to connect client Y and both behind NAT ,
they need server that notify them to try connect each one , so , if I want
to implement the server as WS , I need also the option to notify client Y
that client X try to connect him , and that he also need to try connect to
client X.
If WS don't let me do it (I have the connection details of both clients) , I
will not be able to implement TCP hole punching via WS.
before I will decide to go to my own tcp server... there is still chance to
do something ? :)
thanks
"Steven Cheng[MSFT]" <st*****@online.microsoft.comwrote in message
news:8o**************@TK2MSFTNGXA01.phx.gbl...
Hi Semedao,

I agree with Scott, from standard webservice's perspective, there is no
server-side push mechanims or callback interface. And XML webservice is a
public service which expose its functionliaty through the service
contract(WSDL document) and let various clients to consume it. The
webservice itself should not have any sense of the client consumer or
platform. However, if we want the webservice to actively push/ping client
side, it will require our server-side service has sufficient information
about the client-side's programming interface and platform, this is
somewhat violating the webservice standard.

BTW, such server-side push(to multiple clients) is quite expense
especially
for internet scenario. Is the webservice in your scenario work in intranet
or internet scenario? If convenient, you can provide us some further
background info so that we can look for some other solutions according to
your scenario.
Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead
This posting is provided "AS IS" with no warranties, and confers no
rights.

Aug 8 '06 #4
Hi Semedao,

WCF supports a P2P channel to expose services.
However, the client and the service both must use WCF, so I am not sure if
this is a good solution for you. If it is, you should take a look there.

Regards,
Pablo Cibraro
http://weblogs.asp.net/cibrax

"semedao" <se*****@community.nospamwrote in message
news:Oz****************@TK2MSFTNGP02.phx.gbl...
Hi Steven,
I need this behavior for P2P applicaiton that should be able to work also
behind NAT
if you see this article:
http://www.brynosaurus.com/pub/net/p2pnat/
We need that when client X try to connect client Y and both behind NAT ,
they need server that notify them to try connect each one , so , if I want
to implement the server as WS , I need also the option to notify client Y
that client X try to connect him , and that he also need to try connect to
client X.
If WS don't let me do it (I have the connection details of both clients) ,
I will not be able to implement TCP hole punching via WS.
before I will decide to go to my own tcp server... there is still chance
to do something ? :)
thanks
"Steven Cheng[MSFT]" <st*****@online.microsoft.comwrote in message
news:8o**************@TK2MSFTNGXA01.phx.gbl...
>Hi Semedao,

I agree with Scott, from standard webservice's perspective, there is no
server-side push mechanims or callback interface. And XML webservice is a
public service which expose its functionliaty through the service
contract(WSDL document) and let various clients to consume it. The
webservice itself should not have any sense of the client consumer or
platform. However, if we want the webservice to actively push/ping
client
side, it will require our server-side service has sufficient information
about the client-side's programming interface and platform, this is
somewhat violating the webservice standard.

BTW, such server-side push(to multiple clients) is quite expense
especially
for internet scenario. Is the webservice in your scenario work in
intranet
or internet scenario? If convenient, you can provide us some further
background info so that we can look for some other solutions according to
your scenario.
Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead
This posting is provided "AS IS" with no warranties, and confers no
rights.


Aug 8 '06 #5
Thanks for Pablo's informative inputs.

Hi Semedao,

If you also keep an eye on the WCF, you'll find it has provided many cool
communication features for distributed application. However, WCF is not a
purely and dedicated for webservice.

From your last message, you've got that in your scenario, there are clients
(also service machine?) that are locating in different network environment
and are not visible to each other directly due to the NAT. As far as I
know, there is no directly P2P support on XML webservice standard or
ASP.NET webservice implementation. However, the WSE (Microsoft webservcie
enhancement , latest version 3.0---for .net framework 2.0) support
webservice message routering. Normally, the webservice client/consumer
will establish a direct connection to the webservice server and such
connection is usally based on network protocol access point (ip address +
tcp port when using http or tcp ....), and this make the service client and
server endpoint protocol dependent and coupled.

the "Message Routering" in WSE just help abstract the webservice client and
server's actual network protocol access point(address). The client do not
need to directly access the ultimate service server, but can setup a
intermediate router (relay) which can get directly network communication
with the ultimate server. Thus, the client/consumer just need to send SOAP
message to the rounter machine (intermediate station) and let the rounter
forward the messate to the actual endpoint service. Surely, you need to
setup the rounter in your environment and configure the client/ rounter/
server correctly so that they can cooperate well.

Here are some reference about the service rounter through WSE 3.0:

#Routing SOAP Messages with WSE
http://msdn.microsoft.com/library/de...us/wse3.0/html
/b41230fb-d0e1-48b1-88c0-3daf7a40c9e8.asp

#Implementing Perimeter Service Router in WSE 3.0
http://msdn.microsoft.com/library/en...pPerimServRout
_WSE30.asp?frame=true

Hope this helps.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead

This posting is provided "AS IS" with no warranties, and confers no rights.

Aug 8 '06 #6
Pablo and Steven - thanks for your answers
I am not familiar with WSE and WCF , and I saw that there is large material
to read about both ...
let me try to avoid "digger" inside those issues and then see that it's not
satisfy my app needs.
I need that:
1. keep all connection and traffic secure from others outside the client and
server.
2. be able to make "push" to every client that is connected behind NAT - for
my opinion it's mean to keep alive the connection with him , because maybe
it's a coast performance issue , to keep alive so much sockets at the server
, I want to keep only those who are behind NAT.
3. to be able to transfer large size data blocks from and to those servers ,
for this issue I want that the security , XML and all WS points in the
middle will not convert my data from binary to ASCII.
4. the clients system requirements will be win 2000 and higher.

Is WSE 3.0 , or WCF support it?
does WCF is already working ? or something for future versions?

If there is not support for those needs , I think that MS should start
thinking about it , many apps today need to use P2P connections.

thanks a lot for your help

"Steven Cheng[MSFT]" <st*****@online.microsoft.comwrote in message
news:kk**************@TK2MSFTNGXA01.phx.gbl...
Thanks for Pablo's informative inputs.

Hi Semedao,

If you also keep an eye on the WCF, you'll find it has provided many cool
communication features for distributed application. However, WCF is not a
purely and dedicated for webservice.

From your last message, you've got that in your scenario, there are
clients
(also service machine?) that are locating in different network environment
and are not visible to each other directly due to the NAT. As far as I
know, there is no directly P2P support on XML webservice standard or
ASP.NET webservice implementation. However, the WSE (Microsoft webservcie
enhancement , latest version 3.0---for .net framework 2.0) support
webservice message routering. Normally, the webservice client/consumer
will establish a direct connection to the webservice server and such
connection is usally based on network protocol access point (ip address +
tcp port when using http or tcp ....), and this make the service client
and
server endpoint protocol dependent and coupled.

the "Message Routering" in WSE just help abstract the webservice client
and
server's actual network protocol access point(address). The client do not
need to directly access the ultimate service server, but can setup a
intermediate router (relay) which can get directly network communication
with the ultimate server. Thus, the client/consumer just need to send
SOAP
message to the rounter machine (intermediate station) and let the rounter
forward the messate to the actual endpoint service. Surely, you need to
setup the rounter in your environment and configure the client/ rounter/
server correctly so that they can cooperate well.

Here are some reference about the service rounter through WSE 3.0:

#Routing SOAP Messages with WSE
http://msdn.microsoft.com/library/de...us/wse3.0/html
/b41230fb-d0e1-48b1-88c0-3daf7a40c9e8.asp

#Implementing Perimeter Service Router in WSE 3.0
http://msdn.microsoft.com/library/en...pPerimServRout
_WSE30.asp?frame=true

Hope this helps.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead

This posting is provided "AS IS" with no warranties, and confers no
rights.

Aug 9 '06 #7
Thanks for your reply Semedao,

For the several requests you mentioned, here are my understanding(for WSE
3.0):

1. keep all connection and traffic secure from others outside the client
and
server.
==============================
Sure, WSE is capable of this since it can provide message layer security
(encrypte and sign) so that our SOAP message content can not be inspected
on transport protocol layer( tcp/http)

2. be able to make "push" to every client that is connected behind NAT -
for
my opinion it's mean to keep alive the connection with him , because maybe
it's a coast performance issue , to keep alive so much sockets at the
server
, I want to keep only those who are behind NAT.
===============================
This is the problem so far. I don't think WSE can help service actively
push or notify client machines. Even if we utilize the "message rounter" I
mentioned previously, it can only help us address the following scenario:

suppose we have three machines A , B ,C

A , B is in the same local intranet(and protected through NAT), C is at
external network

B is visible to both A and C, so we can setup the WSE message rounter on B

Anyway webservice request(WSE based) from A to B will be rountered to C,
and the webservice response (WSE based) from C will first arrive B and
finally return to A. Of course, we need to use WSE and perform certain
configuration on all the three machines.

3. to be able to transfer large size data blocks from and to those servers
,
for this issue I want that the security , XML and all WS points in the
middle will not convert my data from binary to ASCII.
===============================
This is supported because WSE provide message layer security so the data
won't be cracked at transport layer. Also, the intermediate router(WSE
message router) only care the source and target url address ,but not the
content.


4. the clients system requirements will be win 2000 and higher.
=================================
No problem. WSE 3.0 is depending on .net framework 2.0, and win 2000 and
later windows OS certainly support .net framework 2.0
Anyway, I think the WSE message routering is worth having a look though is
can not 100% address your "push" request.

In addition, I agree that P2P is a trend and support on P2P communication
is really important. However, as for webservice, due to its original design
purpose, I think it's quite hard to implement P2P communication in it(
basically rely on http). I recommend submit the request to the WCF in the
future version of .net framework 3.0(for Vista), WCF is not specific and
limited to webservice only, but a complete communication framework on
Vista, so it's reasonable to make it also P2P enabled:

http://connect.microsoft.com/wcf/Feedback

Please let me know if there is any other information you wonder.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead

This posting is provided "AS IS" with no warranties, and confers no rights.
Aug 10 '06 #8
Thanks a lot for your good & detailed response!
"Steven Cheng[MSFT]" <st*****@online.microsoft.comwrote in message
news:Px**************@TK2MSFTNGXA01.phx.gbl...
Thanks for your reply Semedao,

For the several requests you mentioned, here are my understanding(for WSE
3.0):

1. keep all connection and traffic secure from others outside the client
and
server.
==============================
Sure, WSE is capable of this since it can provide message layer security
(encrypte and sign) so that our SOAP message content can not be inspected
on transport protocol layer( tcp/http)

2. be able to make "push" to every client that is connected behind NAT -
for
my opinion it's mean to keep alive the connection with him , because maybe
it's a coast performance issue , to keep alive so much sockets at the
server
, I want to keep only those who are behind NAT.
===============================
This is the problem so far. I don't think WSE can help service actively
push or notify client machines. Even if we utilize the "message rounter"
I
mentioned previously, it can only help us address the following scenario:

suppose we have three machines A , B ,C

A , B is in the same local intranet(and protected through NAT), C is at
external network

B is visible to both A and C, so we can setup the WSE message rounter on B

Anyway webservice request(WSE based) from A to B will be rountered to C,
and the webservice response (WSE based) from C will first arrive B and
finally return to A. Of course, we need to use WSE and perform certain
configuration on all the three machines.

3. to be able to transfer large size data blocks from and to those servers
,
for this issue I want that the security , XML and all WS points in the
middle will not convert my data from binary to ASCII.
===============================
This is supported because WSE provide message layer security so the data
won't be cracked at transport layer. Also, the intermediate router(WSE
message router) only care the source and target url address ,but not the
content.


4. the clients system requirements will be win 2000 and higher.
=================================
No problem. WSE 3.0 is depending on .net framework 2.0, and win 2000 and
later windows OS certainly support .net framework 2.0
Anyway, I think the WSE message routering is worth having a look though is
can not 100% address your "push" request.

In addition, I agree that P2P is a trend and support on P2P communication
is really important. However, as for webservice, due to its original
design
purpose, I think it's quite hard to implement P2P communication in it(
basically rely on http). I recommend submit the request to the WCF in
the
future version of .net framework 3.0(for Vista), WCF is not specific and
limited to webservice only, but a complete communication framework on
Vista, so it's reasonable to make it also P2P enabled:

http://connect.microsoft.com/wcf/Feedback

Please let me know if there is any other information you wonder.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead

This posting is provided "AS IS" with no warranties, and confers no
rights.

Aug 13 '06 #9

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

Similar topics

1
by: David | last post by:
I understand that MS has dropped support of the webservice HTML component. So, what is the new "supported" way of accessing a web service from client-side Jscript? DT
2
by: R.A. | last post by:
Hi, I have a web service that process a client call. When a client makes a call to the web method the method needs to query some data from a client_A and return the data to the calling client_B....
1
by: manuel.ricca | last post by:
Hello, I'm just starting to code a windows service in C#. My service needs to create multiple threads, each one responding to TAPI events. Then I will need to have a client connect to it for...
3
by: fred00 | last post by:
I have been searching for information relating to what I want to do, and I am assuming it is not a common issue. I have developed a web service and a client for a customer. I need to give the...
1
by: Lawrenz | last post by:
Im a beginner in web service I would like to know how to call web service method using a client side script and also how to put the returned xml into a record set? Can anyone help me on this and...
2
by: Dmitry Sazonov | last post by:
I'm novice here and I'm sorry for stupid question. We are trying to understand web services architecture, is it better than TIBCO.Randevouz and does webservices fit our needs. I understand, I...
5
by: vthakur | last post by:
Hello: I have a Axis Web Service that sets the sessionid in the SOAP header for persisting the session. The client is a .Net client that processes the header as an Unknown Header. It sets the...
3
by: Jeff Williams | last post by:
I need to develop an application that runs as a service. Easy there are samples on how to do this. I need to have a client which updates information for the service. Easy to do. How do I...
2
by: =?Utf-8?B?QWplaw==?= | last post by:
I have a client which consumes Web Service (WCF - .NET Framework 3.0). I would like to see a Soap message generated when a client calls a Web Service method. In debug mode, I just see the method...
1
by: Bert Leu | last post by:
Hi I understand, that the "normal way" in creating Web Services is: Creating Web Service -- WSDL -- Creating Client Unfortunately, I have to create a Web Service (Service, not Clinet) from...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
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,...
0
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...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

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.