Developing a Client/Server application
-
Hi, I have to develop a client/server application in C#. The connection between the server and the client hast to be persistent and encrypted. There will be steady dataflow on push basis from the server. My question is, what is the best approach to build this kind of application? Speed is one of the most important factors. I read an article about Bear Stearns who built their new stock market transaction server as XML web service. So, if anybody has some gnereal ideas i'd greatly appreciate that
I suggest to read about Remoting. I just finished a client/server application using remoting and it works very good. You can persist and encrypt using Remoting. Search in CP about remoting. Visit www.ingorammer.com[^] Free your mind...
-
I suggest to read about Remoting. I just finished a client/server application using remoting and it works very good. You can persist and encrypt using Remoting. Search in CP about remoting. Visit www.ingorammer.com[^] Free your mind...
I did but to me it looked more like remoting is used to offload processing to another computer. What I want are persistent connections for a couple hundred clients, constantly pushing or pulling data. So, this will be very performance critical. What are the other possibilities to approach this type of application? However, I'll have a deeper look at remoting and see whether it suits my needs
-
I did but to me it looked more like remoting is used to offload processing to another computer. What I want are persistent connections for a couple hundred clients, constantly pushing or pulling data. So, this will be very performance critical. What are the other possibilities to approach this type of application? However, I'll have a deeper look at remoting and see whether it suits my needs
Try webservices, but webservices will work for pulling data, as you know it works using a web server, and the web server can't send information to the clients, unless the client ask for the information. I used remoting to push and pull info from the server and the clients. Free your mind...
-
Try webservices, but webservices will work for pulling data, as you know it works using a web server, and the web server can't send information to the clients, unless the client ask for the information. I used remoting to push and pull info from the server and the clients. Free your mind...
-
Hi, I have to develop a client/server application in C#. The connection between the server and the client hast to be persistent and encrypted. There will be steady dataflow on push basis from the server. My question is, what is the best approach to build this kind of application? Speed is one of the most important factors. I read an article about Bear Stearns who built their new stock market transaction server as XML web service. So, if anybody has some gnereal ideas i'd greatly appreciate that
I agree with the first reply that .NET Remoting is worth looking into, but there is another, easier alternative. You can use XML Web Services over HTTPS (HTTP over SSL) if your server has a valid certificate. If you're developing an internal application and have ActiveDirectory, you (or IT) can use the Certificate Services to create a Web Server certificate and install it in IIS. For external applications, I recommend getting an SSL cert from VeriSign, Thawte, or any other certificate authorities (CAs). Then, just make sure you use a URL to access your Web Servce using the https scheme instead of http. It is automatically encrypted without you having to do anything. If you do look into .NET Remoting - which is far more robust, though WS Security is certainly providing additional features for Web Services - I recommend a good book for both new and intermediate Remoting developers from Microsoft Press, ".NET Remoting" by McLean, Naftel, and Williams: http://www.microsoft.com/mspress/books/6172.asp[^]. You could use channel sinks to encrypt, compress, route, or anything else to the messages in an abstract manner. This book cover that and even includes an example channel sink and derivative
RealProxy
for doing basic load balancing. It's a good book!-----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----
-
I agree with the first reply that .NET Remoting is worth looking into, but there is another, easier alternative. You can use XML Web Services over HTTPS (HTTP over SSL) if your server has a valid certificate. If you're developing an internal application and have ActiveDirectory, you (or IT) can use the Certificate Services to create a Web Server certificate and install it in IIS. For external applications, I recommend getting an SSL cert from VeriSign, Thawte, or any other certificate authorities (CAs). Then, just make sure you use a URL to access your Web Servce using the https scheme instead of http. It is automatically encrypted without you having to do anything. If you do look into .NET Remoting - which is far more robust, though WS Security is certainly providing additional features for Web Services - I recommend a good book for both new and intermediate Remoting developers from Microsoft Press, ".NET Remoting" by McLean, Naftel, and Williams: http://www.microsoft.com/mspress/books/6172.asp[^]. You could use channel sinks to encrypt, compress, route, or anything else to the messages in an abstract manner. This book cover that and even includes an example channel sink and derivative
RealProxy
for doing basic load balancing. It's a good book!-----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----
-
That's the reason why I can't use web services as the data hast to be pushed to the client. What about developing an own TCP/IP Server... do you see any benefit in doing this?
This was already discussed elsewhere I think. I'll give you some advice: don't develop a server which handles each client in a separate thread, cause that will cause processor overloading with >20 clients. Maybe you'll find the answer at .NET 247 ;-) greetz ;-) *Niels Penneman*
Software/Dev Site
Personal Site
-
I agree with the first reply that .NET Remoting is worth looking into, but there is another, easier alternative. You can use XML Web Services over HTTPS (HTTP over SSL) if your server has a valid certificate. If you're developing an internal application and have ActiveDirectory, you (or IT) can use the Certificate Services to create a Web Server certificate and install it in IIS. For external applications, I recommend getting an SSL cert from VeriSign, Thawte, or any other certificate authorities (CAs). Then, just make sure you use a URL to access your Web Servce using the https scheme instead of http. It is automatically encrypted without you having to do anything. If you do look into .NET Remoting - which is far more robust, though WS Security is certainly providing additional features for Web Services - I recommend a good book for both new and intermediate Remoting developers from Microsoft Press, ".NET Remoting" by McLean, Naftel, and Williams: http://www.microsoft.com/mspress/books/6172.asp[^]. You could use channel sinks to encrypt, compress, route, or anything else to the messages in an abstract manner. This book cover that and even includes an example channel sink and derivative
RealProxy
for doing basic load balancing. It's a good book!-----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----
-
This was already discussed elsewhere I think. I'll give you some advice: don't develop a server which handles each client in a separate thread, cause that will cause processor overloading with >20 clients. Maybe you'll find the answer at .NET 247 ;-) greetz ;-) *Niels Penneman*
Software/Dev Site
Personal Site
-
That's the reason why I can't use web services as the data hast to be pushed to the client. What about developing an own TCP/IP Server... do you see any benefit in doing this?
Why invent the wheel when you already have rockets going to mars ??? That's up to you, but remoting is very robust. Any way, if you need an example, I can send you some code. Free your mind...
-
hm but every client will receive different data concurrently. How else could this be accomplished without threads?
Sorry, it does require multiple threads, but make sure you are not running 200 threads at once, you'll have to pool / manage your threads... But that's something I - too (i guess) - am not familiar with. greetz ;-) *Niels Penneman*
Software/Dev Site
Personal Site