EDMthinClient Communication Modes
HTTP and TCP/IP are the two modes of communication that may be used between an EDMsixServer and an EDMthinClient. To locate the EDMsixServer, the EDMthinClient must define an EDMserverContext to specify all the required communication parameters.
- The TCP/IP protocol has the most efficient and reliable way of transferring messages between the EDMthinClient and the EDMsixServer. TCP/IP uses the TCP gate and should be your preferred communication mode.
- The HTTP communication mode wrap the message blocks in HTTP envelopes before they are sent. These HTTP envelopes are stripped off by an HTTP tunnel web-application on the server side. This approach represents communication overhead and EDMthinClient applications may experience some reduction in performance. However, if the server side firewall configuration is such that plain TCP/IP communication is blocked, HTTP communication through the HTTP gate may be the only available option.
The EDMserverContext
Since the communication between an EDMthinClient and an EDMsixServer is stateless, no open login session may be retained on the EDMsixServer between successive calls. Hence, each message block must be accompanied by an EDMserverContext that identifies the EDMuser;
- Login EDMuser name
- Login EDMgroup name
- Login password
For both the TCP/IP and HTTP communication modes, the machine running the EDMsixServer process must be identified in the EDMserverContext by the two parameters;
- EDMsixServer host name
- EDMsixServer port number
When the HTTP gate is used, the HTTP tunnel must also be identified by the following three parameters.
- The HTTP tunnel name
- The HTTP tunnel port number
- The HTTP tunnel host name
If a proxy server is used by TCP or HTTP, you must specify the following two parameters in the EDMserverContext.
- The proxy server host name
- The proxy server port number
The TCP Gate
The TCP gate uses the TCP/IP communication protocol for all communication between EDMthinClients and the EDMsixServer. In the TCP/IP communication mode, the messages are transferred directly between the EDMsixServer and the EDMthinClient. You may therefore need to open the service ports through the fire walls.When the EDMsixServer is started, you must specify the service port number to use for TCP communication. Say you assign port 4500 to the EDMsixServer. Then you will need to keep this port open in the firewall. But you will also need to open as many successive port numbers as you have EDMapplicationServers running. With three EDMapplicationServers, you will need to open the ports 4500, 4501, 4502 and 4503.
The diagram below shows the communication through the TCP gate. The sample code block shows how to define a TCP Server Context with the EDMInterface API
The TCP/IP communication mode uses the TCP/IP communication protocol for all communication between an EDMthinClient and an EDMsixServer.
In the TCP/IP communication mode, the messages are transferred directly between the EDMsixServer and the EDMthinClient. The EDMserverContext used by the EDMthinClient simply needs to specify the host name and the service port number of the machine hosting the EDMsixServer™ process.
The HTTP Gate
If your company's security is such that you cannot open service ports for TCP communication, you may have to use the HTTP gate.Then the HTTP packages are sent through the HTTP port in the firewall and redirected to the HTTP tunnel where the HTTP envelopes are stripped off before the message block is passed on to one of the EDMapplicationServers. This represents a performance overhead, so you should use the TCP gate whenever possible.
The diagram below shows the communication through the HTTP gate.
The HTTP communication mode is used when the EDMserver can only be reached with HTTP communication due to the server side firewall configuration.
In the HTTP communication mode, the EDMthinClient will wrap all message blocks in a HTTP envelopes. This makes it possible to communicate through port 80 (or any other gate used for HTTP communication on the EDMsixServer side). The EDMsixServer can not unwrap these messages by it self. Therefore, this communication mode requires a web-application on the server side that strips off the HTTP envelopes before passing the messages on to the EDMsixServer. This web-application is called an HTTP Tunnel and must run on the EDMsixServer host.
The HTTP Tunnel must be specified in the EDMserverContext that goes with all messages that are transferred between the EDMthinClient and the EDMsixServer. An HTTP Tunnel is specified by three parameters in the EDMserverContext;
- HTTP Tunnel Hostname
- HTTP Tunnel Port Number
- HTTP Tunnel Name
Suppose the HTTP Tunnel web-application can be reached from a web-browser with the URL http://139.168.32.13:80/demo1/servlet/EDMHttpTunnelServlet, then these parameters get the values;
- HTTP Tunnel Hostname = "139.168.32.13",
- HTTP Tunnel Port Number = "80" and
- HTTP Tunnel Name = "demo1/servlet/EDMHttpTunnelServlet".
If there is an Internet Proxy Server on the EDMthinClient side, the EDMserverContext must specify two additional parameters;
- HTTP Proxy Server Name
HTTP Proxy Server Port Number