z/OS And The Web

z/OS And The Web

As enterprises move many of their applications to the internet, it has become increasingly important to know how to deploy a web application on z/OS, and how to enable z/OS for serving web-based workloads.

Middleware products are used to supply the key functions necessary.

z/OS HTTP Server

z/OS HTTP Server has the same capabilities as any other web server – to serve static and dynamic web pages. But the program also has some features that are z/OS-specific.

HTTP Server can be run in any of three modes:

  • Stand-alone server: Typically used for HTTP Server-only implementations (simple websites). Its main role is to provide limited exposure to the internet.
  • Scalable server: This mode is typically used for interactive websites, where traffic volume increases or decreases dynamically. It is aimed at a more sophisticated environment, in which servlets and JSPs are invoked.
  • Multiple servers: A combination of stand-alone and scalable servers, used to improve scalability and security throughout the system. A stand-alone server might be used as a gateway to scalable servers, while the gateway could verify the user authentication of all requests, and reroute requests to other servers.

Powered by Apache

For the past several years, z/OS customers have had a choice of two HTTP Servers that they can use.

IBM HTTP Server powered by Domino is shipped with z/OS itself. This will, however, soon be unsupported in favor of the IBM HTTP Server powered by Apache. The Apache variant supports IPv6, 64-bit execution, and includes security authentication and authorization capabilities similar to those provided in IHS powered by Domino.

As of Version 8.5.5, Apache supplies a new module that contains a more integrated way to let users view z/OS data sets from a browser – one which doesn't use CGI programs.

Because it does not ship with the z/OS operating system, you need to obtain and install a product code before you can configure an IBM HTTP Server powered by Apache on z/OS.

Static Web Pages

In z/OS, the serving of static web pages is similar to web servers on other platforms. The user sends an HTTP request to HTTP Server to obtain a specific file. HTTP Server retrieves the file from its file repository and sends it to the user, together with information about the file (such as MIME type and size) in the HTTP header.

As z/OS systems encode files in EBCDIC, documents on z/OS must first be converted to the ASCII format typically used on the internet. Binary documents like pictures don't have to be converted. The HTTP Server performs any necessary conversions.

Programmers must then use FTP to load documents onto the server, by specifying ASCII as the FTP transport format, to have the file converted from EBCDIC. For binary transfers, the file is not converted.

Dynamic Web Pages

Every kind of interaction (like filling in and processing forms) or personalization on a web page requires dynamic content, so dynamic web pages are an essential part of web-based commerce.

One way to provide dynamic content is through the Common Gateway Interface (CGI), which is part of the HTTP protocol. As with IHS powered by Domino, CGI generates the output and passes it to HTTP Server, which sends it back to the user in an HTTP response.

CGI can also be used to create plain text documents, XML documents, pictures, PDF documents, etc. The MIME type must reflect the content of the HTTP response.

Fast CGI

Each HTTP request requires a separate address space, which can slow things down when there are many requests at one time.

The HTTP Server FastCGI plug-in is a program that manages multiple CGI requests in a single address space, which saves many program instructions for each request.

FastCGI1 was created as a way to combine the advantages of normal CGI programming with some of the performance benefits you get by using the Go Webserver Application Programming Interface (GWAPI).

GWAPI

GWAPI allows you to extend the base functions of the HTTP Server.

You can use the interface to write extensions for customized processing, such as detecting and tracking information that comes in from a requesting client, like server referrals and user agent codes.

Plug-Ins

As mentioned previously, the IBM HTTP Server powered by Apache now includes a module which eliminates the use of CGI.

Using the plug-in interface of HTTP Server, you can employ any one of several products to interface with HTTP Server. For example, there are ways in which HTTP Server can pass control to IBM WebSphere Application Server.

z/OS-Specific Functions

HTTP Server can produce system management facilities (SMF2) records, which programmers can retrieve to do performance and usage analysis. There's a complete set of logging, tracing and reporting capabilities.

The Simple Network Management Protocol (SNMP) Management Information Base (MIB) can help to monitor your server’s health, throughput, and activity. It can then notify you if your specified threshold values are exceeded.

Other z/OS-specific tools include support for cookies, file caching facilities, thread level security, and support for the HTTPS/Secure Socket Layer (SSL) protocol.

z/OS Web Resources

IBM websites also exist with downloadable Web deliverables, and postings of the latest z/OS news.