Consultor Eletrônico



Kbase P69361: Suggestions on how to post an XML document to WebSpeed without using Sockets
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   25/02/2010
Status: Verified

GOAL:

Suggestions on how to post an XML document to WebSpeed without using Sockets

GOAL:

Can use sockets due to firewall restrictions. No outbound files allowed through port 80 either.

FACT(s) (Environment):

WebSpeed 3.1x
UNIX

FIX:

These are untested and are only ideas on how this 'might' be possible:

In order to post XML via a proxy server, the client application needs to be able to talk the protocol of the proxy server: SOCKS4 or SOCKS5.

A possible solution approach would be to implement the SOCKS protocol using 4GL sockets using RFC 1928 (Request For Comments document). On IBM AIX and possibly other platforms there is another solution that may be easier to implement.

On AIX, you can set the SOCKS_SERVER environment variable (you may need also need SOCKS5_USER, SOCKS5_PASSWD and SOCKS5C_CONF) and be able to use a socks enabled command like for example telnet. (In older versions of AIX there was a special command for proxy connections called rtelnet.)

Therefore, another possible solution is to use solution P45288 and use telnet.

We are unsure exactly how the SOCKS_SERVER environment variable works on AIX (we do not have AIX documentation for it) and whether you could use the SOCKS_SERVER variable to enable _progres to use the proxy without any additional programming but it is a possibility since the references that were read indicate that the support is built into AIX. Notice that if this is the case, then the XML post should work without changes, but connections to databases would go through the code for SOCKS support so the connection may be a bit slower.

Solution P45288 describes the basics of sending an XML file to WebSpeed:
Connect to web server at specified port and send http header and data. To use this solution you would need to do an OUTPUT THROUGH "telnet webserver 80", and use PUT UNFORMATTED to output the header and the data.

Summary of possible solutions mentioned above:
- write code for SOCKS support in the 4GL
- Use SOCKS support provided by AIX by enabling SOCKS_SERVER and use telnet
- Check if _progres would use SOCKS_SERVER and use the same code using 4GL sockets