Application Messaging over Sockets



I am not certain where to post my request so I'll start here.

I am looking for guidance in implementing a socket framework for
inter-application communication and then creating a protocol for use
there-in. I do not believe remoting or webservices are viable solutions
here.

I have taken a look a number of articles on the web that relate to my needs,
however none that I have found are broad enough to cover all of my needs.
Each of them were different enough in their implementation that just ended
up adding confusion to my approach.

I have been working with the ALAZ library posted on the codeproject, if for
no other reason than to just get a better understanding. Even still, this
solution doesn't offer the ability for one of my considerations - limiting
bandwidth per connection.

Here is a list of my considerations:

Support Data Encryption - I am unclear on how to implement this
handshaking. Most articles I have seen rely on the developer to code the
encryption so that it is done before any connection is made. It seems to me
that in the case of SMTP - the server reports it's verbs such as StartTLS
and then both the client and the server negotiate the terms of the TLS. I
would very much like for the administrator to configure the server to
support SSL certs and pick the cert, the client then negotiates with the
server the PKI exchange.

Support Data Compression - This might be problematic at least for
performance. It seems that there is no way to get around a predetermined
buffer limit. Because of that, scaling packets and then
encrypting/compressing them tends to muck up the purpose of the buffer. It
just seems to me that there would be a lot of wasted space if the data is
not compressed.

Support Bandwidth Throttling - In some cases, the user base will have less
desirable network infrastructures. It will be important for these
administrators to be able to limit the impact this solutions has on their
bandwidth. Here it seems that the solution is to use a stream and override
the read/write methods in derived class. My issue is that if I am using the
underlying stream in a socket, how then would I limit the bandwidth - this
goes back to the ALAZ framework that I have been looking at.

Support Flexible Protocol - Initially, as a prototype, the protocol will
consist of: serialized commands - I opted for this over text/xml for
simplicity in parsing; file transfers - I break the file into chucks to meet
the buffer size criteria. As needed, we will grow the command listing to
support other areas of the solution that adopt this. I believe I have this
part underwraps, if any of you have input/guidance on this feel free to
share.

Support Framework 2.0 / C# 2005 - I understand that 3.x might have given
us this functionality out of the box, however, this solution is a subset of
a larger solution and the larger piece has set this requirement.

Testability/Diagnostics - The primary goal for this solution was to
replace a legacy solution that has been difficult to debug since inception
with varying results across the customer base. Some things that occur at
client sites simply have never been replicated in our lab environments.
Perhaps this is due to load or infrastructure. This initiative will attempt
to implement unit testing and auto testing. This might just be a weakness
on my part, but it doesn't seem like creating a mock class for testing
database functionality; instead it seems like I need to test the actual
conversation - since the networking code is the piece that should be
suspect.

I am not opposed in looking for complete solutions to purchase over
developing my own, I just haven't seen a product that matches my need.
While the developer in me wants to roll my own solution, it might make sense
to look at mature products.

Thanks in advance


.



Relevant Pages

  • NFS locking
    ... We have a NFS server here with a fairly high load. ... lockd: server xxx.xxx.xxx.xxx not responding, ... # ACPI Support ... # CD-ROM/DVD Filesystems ...
    (Linux-Kernel)
  • NFS problems with through 2.5.x to 2.6.0-test9
    ... When the server is running the ... kernel, as a client the 2.6 series seem to work perfectly, excluding ... Interesting problem arose when I attempted switch the server's kernel to ... with and without nfsv4 support compiled in (was considering testing it at ...
    (Linux-Kernel)
  • RE: Backups, VSS and SBS2003 HELP NEEDED!!!
    ... 2K3 server currently, also, I understand that it is better to have a backup ... Support Professional can assist with your request. ... Microsoft CSS Online Newsgroup Support ... >> suggest customers Only install Windows Server 2003 SP1 on their server. ...
    (microsoft.public.windows.server.sbs)
  • RE: Sharpoint Error in SBS 2003
    ... Have you upgraded the Sharepoint WMSDE to SQL server? ... A supported hotfix is now available from Microsoft, ... contact Microsoft Product Support ... Please paste all the accurate errors information in the newsgroup. ...
    (microsoft.public.windows.server.sbs)
  • Re: Im stuck - Weird behaviour on multiple Server 2000 DC/member servers.
    ... > I've checked the server environmant variables and "Path" includes ... > A third server (THLADL2) has started this behaviour - this server already ... > has SP4 installed so Microsoft Support suggested I install Security Rollup ... > Event Type: Warning ...
    (microsoft.public.win2000.general)