Chapter 1 – Introduction

Icon40 IPS

1.1 – Documentation Foreword

The intention of this documentation is to get you up & running with InetPowerServer under OS/2 Warp (IPS/2) or Windows 2000/XP (IPS/32) as quickly as possible, in both simple and advanced configurations. A list of system requirements, step-by-step tutorials for system preparation & configuration, a robust (yet concise) technical reference are provided to quickly get you the concise information you need.

It's our hope that you find this document useful and informative. We welcome your comments, questions and any suggestions you may have on how we can improve it. Thank you for choosing InetPowerServer!

1.2 – About the Authors

1.2.1 – InetPowerServer

Hi, I'm Terje, the author of the InetPowerServer application. I've been using computers since the early 80s, putting away the games after my first six months or so with a computer at home. Today I work within the IT/Telecom sector in systems design, development and integration. I don't really have any formal IT related education, but I have certified as a Microsoft Certified Systems Engineer (MCSE) to get some prove of knowledge. My MCSE is with the Windows NT 4.0 track but will be upgraded to Windows 2000 during 2001. The reason for not taking Windows 2000 certifications directly now is that I feel it is very important to get experience before going down that road.

As for programming, I almost always find existing offered applications either too expensive, or not powerful enough for my needs and therefore I tend to write my own. When I ran a BBS in the 80s and early 90s I also wrote my own system for that which in some areas still has technology in to far better than any current packages. I write most my applications using the Pascal language, today mostly the Virtual Pascal and the Delphi 5 packages are used for development. When I started to code my BBS system years ago I decided to drop C(++) style programming because it requires far more time both writing code and debugging it afterwards. Pascal is far superior in that aspect and still doesn't limit the possibilities in the same matter as other languages.
For more information about me personally, please visit my personal web page at http://www.flaaronning.net/.

1.2.2 – Documentation

Yvon Letourneau

Hi, I'm Yvon, the guy who has been working hard to bring you the documentation for Terje's flagship, cross-platform product, InetPowerServer. Nothing feels more worth-while to me, than writing the how-to's for a product that raises the standards bar in design and quality.

Oh, by the way this document is for you, so your new ideas will make this document better (yes, new ones still look shinier than old ones). So yes, bring on the suggestions, comments, constructive criticism, and don't forget the chocolate milk. Let me begin by saying that I'm trying not to make this sound like a Personals ad. It's mighty tempting though!

I've been doing the computer thing since the age of seven. So far I've come out of this life-long deal with a couple of supportive parents, some groovy friends, a few good breaks and a great job to wake up to every morning. Studies and stuff have let me achieve certification as a CNA and MCP, and the Solaris cert course I'm enrolled in now is sweetening the deal even more.

Spare time? When there's any left, I'm either rollerblading, watching movies or geeking out in front of a screen and designing code. I only watch the real trend-setters of TV: Family Guy (go Stewie!), The Simpsons and... nothing else. After a stressful day, The HitchHiker's Guide to the Galaxy radio show really does the job. Work-wise, I'm in the sector of continuous data protection at Legato Systems. Great job, great people and you just gotta love their funky emblem! I'm also on IBM's OS/2 FixPak Beta Team. Now if I only I could find that special someone...

This project is dedicated to my son, Matthew. I'd like to extend special thanks to my folks Jacques and Theresa, my grandmas Estelle Letourneau and the late Gilberthe Bedard (may God rest her soul) and uncle Daniel (the guy who got me into computer stuff in the first place). Learning power makes a difference, and these teachers certainly have eaten their spinach: Terry Fuchs, Trevor Rainey, Jim Robinson, Rick Brown and Robert Allen. Superstar friends are hard to find. Let's not forget Matt Hickson, Darcy Casselman, Bill Fuller and Tyler Archbold. Greetings go out to Gene Aikins, Julien Pierre, Konstantin Bondarchuk, Tanelli Leppa, Samuel Audet, the folks at Blueprint Software and The Hobbes Archive... and everyone else who really should be considered the pillars of the friendly computing community. All these folks are great people. Without them, I wouldn't be happy as I am today. Of course without my friend Terje, this page would be blank! *g*

With the "formalities" out of the way (or rather the lack thereof), I want to wish you, the reader, the best of luck. You'll really have fun with IPS. I hope you find that these docs help you get an absolutely clear picture on how to take advantage of this incredible product. "Incredible?", you say? "Good things come to those who wait", they say?

You've waited long enough. Welcome to InetPowerServer.

- Yvon

Terje Flaarønning

For information about me as a person see section 1.2.1 above as I don't feel like repeating that here. As for my work with this documentation I have made the design/layout guidelines as well as written the more technical parts. Most of the body text is written by Yvon who kindly offered to help out. My intention with these documents is that it should be of a quality close to, or equal to professional documentation found in more expensive, commercial products.

1.3 – What is InetPowerServer?

Quite simply put, InetPowerServer (IPS) is a power-packed, feature-rich, secure, scalable and fully customizable Internet server, designed for uni-processor and multi-processor OS/2 Warp and Windows 2000/XP systems. It's built to serve the masses, with seamless operation and flexibility. IPS delivers server services based upon the most current Internet standard technologies, within a scalable framework. IPS maintains peak performance across the board under heavy loads, while delivering rich features for remote monitoring and administration.

IPS provides fully customizable Internet server components for file transfer (FTPd), web hosting (HTTPd) and mail serving (SMTPd and POP3d). In addition, IPS's services are RFC compliant, so any connecting client on any platform can experience the features and high performance that IPS has to offer.

IPS also has it's own extensions for remote management and configuration. What's even better is that IPS is entirely customizable and configurable - both remotely or locally. The features of IPS as a whole and the specific ones for each component are detailed in the following tables:

Feature

Description

Resource pooling

All IPS services are based on resource pooling, which means that IPS always has a pool of already-prepared resources for client connections to use. This highly increases performance in the acceptance of new connections and in the serving of the clients.

Automatic failure recovery

The IPS server automatically recovers from most possible error situations if something unexpected should happen.

Dynamic configuration

All IPS services offer dynamic configuration for client connection related settings, meaning that you don't need to restart the server if you change the configuration.

Plain text configuration and user database

All IPS configuration is done in plain text configuration files. This allows for easy editing of configuration and user data, as well as the ease of configuring settings for 3rd-party addons.

Site personalities

The Site Personalities feature of IPS allow multiple sites to run on the same machine, and multiple instances of services can be run under each personality. Each "personality" is made up of a unique user database, access control list and virtual tree setup, and services (and multiple instances of those services) can be bound to one or more network interfaces. Site Personalities let the administrator define what runs where (IP/port), who gets access to what (access control lists), where resources are. You fine-tune each site through the Site Personality file. IPS Site Personalities define the environmental conditions that IPS will live in, in which it will adjust to provide seamless, scalable network services for both entry-level and enterprise-class environments.

Multi-homed services

IPS can bind any number of service instances either to the same adapter, or across multiple adapters.

Virtual Directory tree

All object-sharing service components of IPS share a Virtual Directory tree, which you can build from any or all disk resources available on your computer or network. You can "mount" any OS resource to any Virtual Directory you wish.

Virtual Directory roots

Each object-sharing service component can use any directory in the Virtual Directory tree as a root directory for that service.

Remote management

IPS offers remote management and monitoring by providing an open remote administration interface, and a built-in, web-based management interface.

External authentication interface

IPS offers an interface for external password authentication, making it possible to integrate with already-existing user databases.

Advanced scripting interface

The RexxHook system in IPS allows for advanced scripting to expand the already massive feature set of IPS. RexxHooks can also be used to call hooks written in other compiled languages.

Fully customizable service responses

All responses given by IPS service components are customizable by the administrator. Powerful system variables and the FIB (Fill In the Blanks) system allows runtime or statistical data from any service component to be dynamically inserted into displayed messages.

RFC compliant service components

All IPS services aim to be fully RFC compliant. Support for the latest RFC additions regarding services are almost always up-to-date in the latest IPS releases.

High-security, high-performance services

All IPS service components are designed for high-security, and have been hand-optimized for high performance.

Multi-platform support

IPS supports multiple platforms: currently OS/2 Warp and Windows 2000/XP. Configuration files for one platform are transferrable, unchanged, to the another. Even the user database can be used by services on both platforms, and can be even used simultaneously by both platforms!

SMP-smart and SMP-slick

IPS provides excellent performance in multi-processor environments.

Technical support

Yes, IPS is free! So is the technical support. Support is offered through a web interface or through mailing list (email). A quick bug reporting template is also provided for easy problem submission (Appendix C).

1.3.1 – FTP Component

IPS's robust FTPd support provides nearly all functionality of an FTPd defined by the latest Internet standards. In addition to this, IPS's own SITE commands increase productivity by providing complete remote site administration suite. Some of the IPS FTPd's highlights include:

Feature

Description

Full transfer resume support

Both file downloads and uploads support resuming of aborted transfers.

Extensive set of SITE commands

IPS offers an extensive set of SITE commands for both users and administrators. This can be further extended by the administrator using the RexxHooks interface.

Support for the latest protocol extensions

IPS supports all current FTP protocol extensions including MLSD, MLST, OPTS and more.

High client and firewall compatibility

A high number of clients have been tested, and have proved to work very well with IPS. IPS has also been well-tested in it's processing of FTP PORT and PASV commands in a firewall-friendly manner.


The complete list of FTPd features and their details can be found in the Technical Reference section of this document (see Chapter 5). New features are always in development!

1.3.2 – HTTP Component

IPS provides a highly optimized, completely HTTP/1.1 Internet standards compliant web server with CGI capabilities. It's ready to go, and is constantly being improved.

Feature

Description

Virtual Hosting

Host header support is fully supported. For you, this means you can host any number of domains on your single IP IPS server, with this standardized HTTP/1.1 feature.

1.3.3 – POP3 Component

IPS's POP3 mail service provides efficient mailbox services in accordance with the Internet standards.

Feature

Description



1.3.4 – SMTP Component

The SMTP mail service component provides efficient inbound and outbound email services for your IPS server.

Feature

Description



1.3.5 – The Story Behind

The development which lead to IPS started years ago, when I wanted to run an OS/2-based FTP server at one of my customer's sites. I tried the IBM FTP server included with OS/2, but found that to be causing all kinds of problems for various FTP clients, due to the OS/2-specific directory listings the daemon sent. I searched the Internet for other offerings but found nothing which supported OS/2. So, I started to write my own FTP daemon called "tftpd", Terje's FTPd! Prior to this, I had never written a TCP/IP application. I quickly discovered that the name tftpd was not a good choice, as the TCP/IP community already had something different called Trivial FTP (tftp). The project was renamed to zftpd. The z didn't mean much, but I had to find another name.

I worked on zftpd for some time, and zftp acquired many users around the globe. zftpd supported the FTP standards very well, and most clients worked fine with the daemon. The features of the daemon however, were limited, so after working with zftpd a few years or so, I decided to start a completely new project. This project is known today as InetPowerServer (or IPS for short). IPS was to be developed professionally like any other development project at work, even though it was a private project. That meant lots of specification work on "paper" before coding. I've not been able to keep that going like this all the time because of the heavy development required to make IPS real, and my rather limited spare time.

Today, IPS is like a development baby which I develop new code techniques for, and test them out before using them at work projects. The project continues to support both OS/2 Warp and Windows 2000/XP platforms. If you wonder why the "I" in IPS stands for Inet, not Internet, it's because IPS is meant to be an enterprise-wide Intranet solution, as well as an Internet and Extranet solution.

This document is the exclusive property of Terje Flaarønning.

Jump to http://www.InetPowerServer.com/