Janus Telnet Server: Difference between revisions
m (→See also) |
(added "screen" to "arbitrary-geometry" = arbitrary-screen geometry") |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
Janus Telnet support allows you to set up one or more Telnet servers within | Janus Telnet support allows you to set up one or more Telnet servers within | ||
a <var class="product">Model 204</var> Online. | a <var class="product">Model 204</var> Online. | ||
<var>[[JANUS command|JANUS]]</var> commands are used to define and start a TCP/IP | <var>[[JANUS command|JANUS]]</var> commands are used to define and start a TCP/IP port | ||
for each <var class="product">Janus Telnet Server</var>. | for each <var class="product">Janus Telnet Server</var>. | ||
The <var class="product">Janus Telnet Server</var> supports only the tn3270 subset | The <var class="product">Janus Telnet Server</var> supports only the tn3270 subset | ||
Line 28: | Line 28: | ||
after connecting to VTAM or logging on to CMS is eliminated — the user is connected | after connecting to VTAM or logging on to CMS is eliminated — the user is connected | ||
directly to <var class="product">Model 204</var>. | directly to <var class="product">Model 204</var>. | ||
<li>It makes it much easier to determine the IP address of a 3270 user. | <li>It makes it much easier to determine the IP address of a 3270 user. | ||
When tn3270 access is via VTAM, <var class="product">Model 204</var> only sees the | When tn3270 access is via VTAM, <var class="product">Model 204</var> only sees the | ||
Line 34: | Line 35: | ||
Maintaining a fixed IP address to LU name mapping in TCP/IP makes this more | Maintaining a fixed IP address to LU name mapping in TCP/IP makes this more | ||
feasible, but it is a maintenance headache. | feasible, but it is a maintenance headache. | ||
<li>It reduces the number of thread types required in an Online. | <li>It reduces the number of thread types required in an Online. | ||
Since <var class="product">Telnet Server</var> threads run in daemon threads, no special 3270 | Since <var class="product">Telnet Server</var> threads run in daemon threads, no special 3270 | ||
Line 39: | Line 41: | ||
In fact, since CMS and TSO both provide tn3270 clients, no special thread | In fact, since CMS and TSO both provide tn3270 clients, no special thread | ||
type is required for full screen access from CMS or TSO, either. | type is required for full screen access from CMS or TSO, either. | ||
<li>The configuration of a <var class="product">Janus Telnet Server</var> is simpler and more dynamic | <li>The configuration of a <var class="product">Janus Telnet Server</var> is simpler and more dynamic | ||
than the Telnet server provided by the TCP/IP stack. | than the Telnet server provided by the TCP/IP stack. | ||
Line 46: | Line 49: | ||
to set things like <var>[[BINDADDR (JANUS DEFINE parameter)|BINDADDR]]</var> or <var>[[TCPKEEPALIVE (JANUS DEFINE parameter)|TCPKEEPALIVE]]</var> that are difficult, if not | to set things like <var>[[BINDADDR (JANUS DEFINE parameter)|BINDADDR]]</var> or <var>[[TCPKEEPALIVE (JANUS DEFINE parameter)|TCPKEEPALIVE]]</var> that are difficult, if not | ||
impossible, to set via the TCP/IP stack Telnet server. | impossible, to set via the TCP/IP stack Telnet server. | ||
<li>For <var class="product">Janus Network Security</var> customers, the <var class="product">Janus Telnet Server</var> can be trivially configured to use SSL. | |||
<li>For <var class="product">[http://www.sirius-software.com/maint/download/jansslr.pdf Janus Network Security]</var> customers, the <var class="product">Janus Telnet Server</var> can be trivially configured to use SSL. | |||
<li>The Janus tracing facilities may be used to trace 3270 datastreams. | <li>The Janus tracing facilities may be used to trace 3270 datastreams. | ||
While obviously a somewhat esoteric capability, it can be quite useful on occasion. | While obviously a somewhat esoteric capability, it can be quite useful on occasion. | ||
Line 59: | Line 64: | ||
<li>The <var class="product">Janus Telnet Server</var> currently provides no | <li>The <var class="product">Janus Telnet Server</var> currently provides no | ||
facility comparable to the VTAM transfer facility available for VTAM terminals. | facility comparable to the VTAM transfer facility available for VTAM terminals. | ||
<li>If display of data in <var class="product">SirScan</var> is limited by IODEV type (that is, <code>IODEV15</code>), | <li>If display of data in <var class="product">SirScan</var> is limited by IODEV type (that is, <code>IODEV15</code>), | ||
the display will also pick up <var class="product">Janus Telnet Server</var> connections, which might not be desirable. | the display will also pick up <var class="product">Janus Telnet Server</var> connections, which might not be desirable. | ||
Line 66: | Line 72: | ||
</ul> | </ul> | ||
<p class="note">'''Note:''' | |||
To use <var class="product">Janus Telnet Server</var>, you must have licensed <var class="product">[[Janus TCP/IP Base]]</var> and <var class="product">[[Janus Sockets]]</var>. </p> | |||
==Configuring a Janus Telnet Server== | ==Configuring a Janus Telnet Server== | ||
These are the configuaration steps: | These are the configuaration steps: | ||
<ol> | <ol> | ||
Line 83: | Line 91: | ||
Since IODEV 21 is currently unused, add | Since IODEV 21 is currently unused, add | ||
<code>TNDEV=21</code> to the User 0 parameters to enable Telnet support. | <code>TNDEV=21</code> to the User 0 parameters to enable Telnet support. | ||
<li>If you want support for arbitrary-geometry Telnet clients, specify | <li>If you want support for arbitrary-screen geometry Telnet clients, specify | ||
<code>SIRTERM=1</code> in the User 0 parameters, if <var>[[SIRTERM parameter|SIRTERM]]</var> is not already set there. | <code>SIRTERM=1</code> in the User 0 parameters, if <var>[[SIRTERM parameter|SIRTERM]]</var> is not already set there. | ||
</ul> | </ul> |
Latest revision as of 17:04, 23 April 2020
Janus Telnet support allows you to set up one or more Telnet servers within a Model 204 Online. JANUS commands are used to define and start a TCP/IP port for each Janus Telnet Server. The Janus Telnet Server supports only the tn3270 subset of the Telnet protocol. That is, it will only serve clients that provide 3270 emulation via Telnet. Janus Telnet servers can be accessed with Telnet, or more specifically a tn3270 client of your choice, to gain 3270 access to Model 204. A tn3270 client will typically be running on an end-user's workstation.
Nowadays, almost all access to mainframe applications is via tn3270. Typically, clients connect to a tn3270 server provided by the TCP/IP stack for the operating system. While most of these stacks are now provided by IBM, there are still a few third-party stacks available, most of which provide their own Telnet servers. For Model 204 access, most tn3270 clients first connect to a service such as VTAM or CMS, which then provides access to Model 204.
Using the Janus Telnet Server has some advantages over using the Telnet server provided by the TCP/IP stack:
- It eliminates the extra layer between TCP/IP and Model 204 — either VTAM or CMS. This reduces complexity and, possibly, CPU overhead. For end-users, the extra step of connecting to Model 204 after connecting to VTAM or logging on to CMS is eliminated — the user is connected directly to Model 204.
- It makes it much easier to determine the IP address of a 3270 user. When tn3270 access is via VTAM, Model 204 only sees the VTAM LU of the terminal. Mapping this to an IP address can be difficult. Maintaining a fixed IP address to LU name mapping in TCP/IP makes this more feasible, but it is a maintenance headache.
- It reduces the number of thread types required in an Online. Since Telnet Server threads run in daemon threads, no special 3270 threads are required for 3270 access. In fact, since CMS and TSO both provide tn3270 clients, no special thread type is required for full screen access from CMS or TSO, either.
- The configuration of a Janus Telnet Server is simpler and more dynamic than the Telnet server provided by the TCP/IP stack. Janus Telnet Server ports can be started and stopped at will with the JANUS START and JANUS FORCE commands. In addition, the simple JANUS DEFINE command structure makes it easy to set things like BINDADDR or TCPKEEPALIVE that are difficult, if not impossible, to set via the TCP/IP stack Telnet server.
- For Janus Network Security customers, the Janus Telnet Server can be trivially configured to use SSL.
- The Janus tracing facilities may be used to trace 3270 datastreams. While obviously a somewhat esoteric capability, it can be quite useful on occasion. When tracing 3270 datastreams using JANUS TRACE, one should be aware that the 3270 datastreams are wrapped in Telnet/tn3270 datastreams, so they will contain extra "stuff." The Telnet layer is described by RFC 854, and tn3270 is described by RFC 1576.
These are disadvantages of using a Janus Telnet Server:
- The Janus Telnet Server currently provides no facility comparable to the VTAM transfer facility available for VTAM terminals.
- If display of data in SirScan is limited by IODEV type (that is,
IODEV15
), the display will also pick up Janus Telnet Server connections, which might not be desirable. Of course, this is easily corrected by specifyingJAN:
followed by the port name, instead of usingIODEV15
to limit SirScan display. For example,JAN:WEB
would limit display to connections on portWEB
.
Note: To use Janus Telnet Server, you must have licensed Janus TCP/IP Base and Janus Sockets.
Configuring a Janus Telnet Server
These are the configuaration steps:
- Set User 0 parameters:
- Even though Janus Telnet Server runs full screen requests on daemon threads
(IODEV number set by the SDAEMDEV system parameter),
Model 204 typically considers an IODEV's type to be either line-mode or full-screen.
So the daemon threads that run Telnet requests will dynamically switch to
a different IODEV number while there is a connection.
Like SDAEMDEV, you must indicate in the User 0 CCAIN parameters
the IODEV number to be used for Telnet requests.
The TNDEV parameter indicates the Telnet IODEV number.
Since IODEV 21 is currently unused, add
TNDEV=21
to the User 0 parameters to enable Telnet support. - If you want support for arbitrary-screen geometry Telnet clients, specify
SIRTERM=1
in the User 0 parameters, if SIRTERM is not already set there.
- Even though Janus Telnet Server runs full screen requests on daemon threads
(IODEV number set by the SDAEMDEV system parameter),
Model 204 typically considers an IODEV's type to be either line-mode or full-screen.
So the daemon threads that run Telnet requests will dynamically switch to
a different IODEV number while there is a connection.
Like SDAEMDEV, you must indicate in the User 0 CCAIN parameters
the IODEV number to be used for Telnet requests.
The TNDEV parameter indicates the Telnet IODEV number.
Since IODEV 21 is currently unused, add
- Using a JANUS DEFINE command, define a Janus port that will provide Telnet service:
The following is a typical command for a Telnet server port:
JANUS DEFINE TNSERV 777 TNSERV 10 WSFQUERY
- Specifying the WSFQUERY parameter is recommended to provide support for non-standard terminal screen geometries. A JANUS START for the port will then start the port and make direct Telnet access to Model 204 available.
- As with any other port type, if a port number below 1024 is to be used, the
port might need to be reserved for the Online in the TCP/IP configuration.
The standard port number for Telnet is 23.
This port number will almost certainly be in-use on any mainframe on which
Model 204 will be running.
On a multi-homed mainframe, however, it might be possible to use port 23
on a specific host IP address for Janus.
The BINDADDR parameter is required to provide service on a specific IP address:
JANUS DEFINE TNSERV 23 TNSERV 10 WSFQUERY BINDADDR 198.242.244.13
- TCPKEEPALIVE is an additional JANUS DEFINE parameter worth setting in your TNSERV port definition, since this port is likely to be held open for relatively long periods of time.
- AUTOSYS is a JANUS DEFINE parameter you can use in your TNSERV port definition to specify a subsystem to be invoked after a login on the Telnet Server.
See also
- Janus Sockets User Language coding considerations
- Sample Janus Sockets programs
- Socket-level interfaces:
- Higher-level interfaces: