Interserver communication through known ports

Our product system consists of an IIS 6.0 server, behind which is a Java SOA server, behind which are both Oracle database servers.

For various reasons, we need a Windows service running on a Java SOA server that stores opaque drops associated with a GUID. Here is a simplified version of the interface:

interface IBlobService
{
    void PutBlob(Guid key, byte[] data);
    byte[] GetBlob(Guid key);
}

The primary user of IBlobService is the web interface running on the IIS server. We could use remote WCF or .NET through a special port for communication between servers. However, our application is subject to strict accreditation requirements. We would rather use a well-known port for communication rather than a user port.

We cannot use named pipes because we need to communicate between servers. We examined the use of MSMQ as it uses a well-known port, but MSMQ limits the message size to 4 MB. We need to transfer much more - up to 60 MB, at least.

What other features (if any) do .NET expose that will allow communication between servers over a known port?

+3
source share
3 answers

If MSMQ is the preferred option, I would crop the data and collect it.

The contents of your message body are opaque, so the inclusion of all the piece data, such as id, sequence, size, and CRC, is possible.

, WCF. . MSDN: http://msdn.microsoft.com/en-us/library/ms733742.aspx

+1

, WCF, HTTP/HTPS. raw tcp , . , 80 http, , - , .

+1

, , .

After discussion, it is not required that the blob service start as a Windows service. Instead, a simple Java servlet that implements a RESTful interface for data can be hosted on a Java application server. This will cost a stack of SOAP and XML overhead, but it will take advantage of Java application server dispatch capabilities.

Data can be saved with

PUT https://java-app-server.example.com/blobService/b12a0403-... HTTP/1.1
Content-Length: <LENGTH OF BLOB>
Content-Type: application/octet-stream

<BLOB>

And later retrieved with

GET https://java-app-server.example.com/blobService/b12a0403-... HTTP/1.1

What returns

Content-Length: <LENGTH OF BLOB>
Content-Type: application/octet-stream

<BLOB>
+1
source

All Articles