arbitrary text you want to pass to your application function. Use HTTPD_extract() to extract the text from the INIT_STRING variable.

IP_address_template

Used only with the Service and NameTrans directives on servers that have more than one IP address. This variable determines if your application function is called only for requests that comes on a specific IP address or on a range of IP addresses.

Compatibility with other APIs

The Server API is compatible with other APIs, such as CGI. You can run your existing CGI programs on all the server’s operating systems.

Porting CGI programs

Here are a few guidelines for porting CGI applications that are written in C to use the Server API:

1.Remove your main() entry point or rename it so you can build a service program.

2.Eliminate global variables or protect them with a mutual exclusion semaphore.

3.Change the following calls in your programs:

vChange printf() header calls to HTTPD_set().

vChange printf() data calls to HTTPD_write().

vChange getenv() calls to HTTPD_extract(). Note, that this returns deallocated memory, so you must free the result.

4.Remember, that the server runs in a multi-threaded environment and your application functions must be threadsafe. If the functions are re-entrant, performance will not decrease.

5.Do not forget to set the Content-Type header if you are using HTTPD_write() to send data back to the client.

6.Check your code for memory leaks.

7.Think about your error paths. If you generate error messages yourself and send them back as HTML, you should return HTTPD_OK from your service functions.

Authentication and Authorization

Authentication is the verification of the security tokens that are associated with this request. Authorization is the process using the security tokens to determine if the requester has access to the resource. In the IBM HTTP Server, authentication is part of the authorization process; it occurs only when authorization is required.

If your Server API application provides its own authorization process, it will override the default server authorization and authentication. Therefore, if you have Authorization directives in your configuration file, the application functions associated with them must also handle any necessary authentication. The predefined HTTPD_authenticate() function is provided to assist you with this.

There are three ways you can provide for authentication in your authorization application functions:

122Web Programming Guide V4R5

Page 132
Image 132
IBM AS/400E manual Compatibility with other APIs, Porting CGI programs, Authentication and Authorization

AS/400E specifications

The IBM AS/400E, now more commonly known as IBM i, is a robust and versatile midrange server that has been designed to provide a comprehensive computing solution for businesses of all sizes. First introduced in the late 1980s, the AS/400 series has undergone multiple enhancements and rebranding, with the AS/400E being one of the notable iterations. This powerful platform is closely associated with IBM's commitment to reliability, scalability, and integrated business solutions.

One of the main features of the AS/400E is its highly integrated architecture that combines hardware and software into a cohesive system. This integration allows for seamless operations, reducing the complexity typically associated with managing disparate systems. The system is powered by IBM's proprietary OS/400 operating system, which has evolved into IBM i, featuring advanced capabilities like object-oriented programming, integrated database management, and security features that are essential for enterprise environments.

A key characteristic of the AS/400E is its robust database support, primarily through the use of DB2 for i. This integrated database management system enables efficient data handling and retrieval, facilitating real-time business analytics and reporting. Furthermore, the platform supports a variety of programming languages, including RPG, COBOL, and Java, making it flexible for developers who require diverse tools for application development.

The AS/400E is also known for its exceptional reliability and uptime, making it a preferred choice for critical business applications in industries such as finance, healthcare, and manufacturing. This reliability is backed by advanced error detection and correction mechanisms, as well as redundancy features that help prevent data loss and minimize downtime.

In terms of scalability, the AS/400E can effortlessly expand to accommodate growing business demands. Organizations can increase processing power by adding more resources without significant disruption. This scalability, combined with the system’s built-in virtualization capabilities, allows businesses to optimize resource usage and streamline operations.

Security is another defining feature of the AS/400E. The platform incorporates various layers of security measures, including user authentication, encryption, and comprehensive auditing capabilities, ensuring that sensitive business data is protected against unauthorized access.

Overall, the IBM AS/400E remains a powerful tool in the enterprise computing landscape, providing businesses with an integrated, reliable, and secure solution for their technological needs. Its enduring popularity is a testament to its capability to evolve with changing business requirements while maintaining its core attributes of high performance and stability.