PicLan-IP for D3/Linux
September 5, 1999
PicLan-IP is now available for D3/Linux (ProPlus) version 7.1 and 7.2.
Modular Software is pleased to announce the immediate availability of
PicLan-IP for Pick Systems D3 DBMS system hosted on Linux.
PicLan-IP brings a new level of performance, versatility, and simplicity
to internet applications that make use of D3. Instead of relying
on tenuous links to non MultiValue internet services, PicLan-IP implements
these same internet standard functions completely within the MultiValue
environment. The result is a standards-based solution that is efficient,
cost-effective, and elegant.
PicLan-IP web solutions are quite simply the most elegant, efficient, and
reliable way to deploy your MultiValue application with a web browser interface.
Whether you are deploying within a corporate intranet, or world-wide via
the public internet, PicLan-IP provides a robust solution to your web application
needs. PicLan-IP includes a full-featured, internet standard HTTP/1.0
web server. Instead of relying on external, non-MultiValue web server
modules, PicLan-IP implements the entire HTTP server engine within the
Coyote Web Server
There are a number of reasons why running the Web Server as a MultiValue
application makes sense:
||Requires External Server
||Very fast - all processing takes place in a single centralized
location within a single process model.
||Slow - numerous processes have to exchange information using
slow interfaces like CGI and pipes.
||Easy - all configuration items are controlled within the MultiValue
||Difficult - Multiple products must be installed and configured
in several run-time environments.
||Excellent - All web functions are controlled within the MV environment.
||Poor - Web Server functions are beyond the reach of MV applications.
Java, and Active-X can be used but are not required.
||Some good, some poor - Some solutions require Java or Active-X
components complicating client configuration issues.
||Excellent - MV applications control all web logging function
in MV format. You control what informaton is logged and in what format.
||Poor - Web Server logging functions are controlled by the external
web server and are difficult to manipulate with MV applications
|Excellent - Active Server Pages with embedded mv/BASIC source
code. All processing occurs in MV code with MV format data structures.
||Poor - Application must map MV data to ODBC or use cumbersome
subroutine based APIs.
||Excellent - Use any HTML editor. Application error messages
can be configured to go to the browser, monitor console, or log files.
Use of mv/BASIC debugger is supported.
||Proprietary or none - MV interface uses obscure subroutine calls
or non-MV data structures.
||Excellent - Application errors are logged and user-controlled
error displays are generated in plain english to the end-user.
||Poor - Application errors usually result in generic "no response"
messages with little indication of the source of errors.
||Excellent - Applications can be updated real-time with live
||Poor - server components may need to be restarted with many
type of application changes.
||Excellent - mv/WEB environment handles persistence transparently
with added support for timed item-locks.
||Some good, some poor - Hidden input fields and cookies may require
manual decoding of HTTP headers and input fields. Unknown support
||Excellent - All server functions are fully watch-dogged. True
24x7 operation is designed in.
||Poor - Many server functions reside in environments that require
manual intervention upon failure. Poor implementation for 24x7 applications.
||Low - The PicLan-Ip licensing cost is all that is required.
You do not need to license external servers. PicLan-IP also runs
on MultiValue phantom processes, so no MultiValue user licenses are consumed.
||Low to High - Depending on the configuration, you may need to
license external web server software or even purchase additional host computers.
Some solutions also consume MultiValue user licenses depending on their
The Web Server Implementation Standard
Even though the PicLan-IP web server is implemented completely within the
MultiValue environment, it is a full featured HTTP server that features:
||PicLan-IP implements the entire HTTP/1.0 standard. Web users
have no way of knowing they are conversing with a MultiValue host (unless
you tell them).
||PicLan-IP supports up to 50 independent sets of web content. One MultiValue
host can appear to the world as many independent web sites and applications.
|The PicLan-IP web server supports user-definable web content including
HTML, TXT, GIF, JPEG, EXE, ZIP, WAV, and other types that you can easily
|The PicLan-IP web server implementation is fully multi-threaded taking
full advantage of multi-CPU hardware platforms and overlapped I/O and CPU
||The PicLan-IP web server makes extensive use of server-side caching
to reduce server overhead when a page is accessed more than once. Nearly
every concievable web element, from HTTP headers to active server page
merge logic, is "compiled" the first time a page is accessed. This logic
allows the web server to use intelligent "machine code generation" techniques
to produce web interfaces that are actually faster than could be hand coded.
The Web Server Programming Interface
The PicLan-IP web server is programmable through the use of "active server
pages". An active server page is an HTML document that seamlessly
blends the capabilities of HTML and mv/BASIC. You create PicLan-IP
active server pages with a standard HTML editor such as Microsoft Front
Page or NetScape Composer. PicLan-IP "active server pages" can consist
of the following elements:
PicLan-IP Web Server active server pages can be used in three different
Standard HTML content including:
Client-side Java applets
Client-side Active-X applets
web applications. Standard, old-fashioned, web browsers with HTML
functions may be used to enhance the appearance and client-side operation
Standard mv/BASIC source code at the end of each HTML page
Full mv/BASIC syntax support including:
TCL command execution
... and everything else
mv/BASIC source code is compiled with the standard system BASIC (or
COMPILE) verb into a generated subroutine for each web page with active
content. This compile step is completely automatic and usually adds
less than two seconds to the page access time. Once a page has been
compiled, it is only compiled again if it is changed. This "demand
compile" behaviour makes web site development an easy single-step automated
Web Server extensions to ease manipultion of:
HTML input fields
HTTP header fields
HTML quoting and other character conversion operations
Access to web server parameters such as client IP addresses
Page flow logic to branch application execution from page to page
mv/BASIC source code for insertion of dynamic elements into static pages
A virtually unlimited number of insertion points can be included on a page
Insertion points are "pre-processed" when a web page's mv/BASIC code
is "compiled". This machine generated code process results in insertion
merging operations that are typically faster than a human programmer could
hand code and that are much faster than run-time insertions that rely on
LOCATE or INDEX statements.
User-definable insertion point delimiter characters
Insertion points can be:
simple mv/BASIC variables
or any other mv/BASIC expression that evaluates to a string
HTML quoting can be handled
Automatically, as data is merged
Manually by your application code allowing you to dynamically build HTML
||Any web page can include mv/BASIC source code to generate dynamic web
||You can setup web directories, or entire IP addresses to call a single
default active server page for any URL. This allows you to easily
implement global security and access control, sense browser configurations,
etc. all from a single block of mv/BASIC source code.
||If web processing results in an HTML error condition (such as page
not found), you can specify an error page that can then present this error
to the user with additional information beyond the simple error code. These
error pages are specified independently for each IP address that the server
The PicLan-IP Web Client is not an application program with a user interface,
but is instead designed to give your mv/BASIC program access to the web.
With the PicLan-IP Web Client, your mv/BASIC programs can perform HTTP
operations with a simple one-subroutine interface. This allows automated
mv/BASIC functions access to a world-wide information base.
PicLan-IP Web Client
Some applications for the PicLan-IP Web Client might include:
The PicLan-IP Web Client can also be uses as a powerful "Remote Proceedure
Call" engine that works both in intranet and public internet environments.
With the PicLan-IP Web Client and a remote PicLan-IP Web Server running,
you can easily setup applications that "remote execute" MultiValue application
code. You can pass parameters and retrieve results. This "loosely
coupled" architechure using HTTP as a protocol is ideal for distributed
processing applications where the performance and/or reliability of the
communications link between sites is less than perfect.
Lookup UPS tracking numbers on a nightly basis to:
update your internal files delivery status fields
file for shipping refunds on packages that are late, even if the customer
does not complain
general email to your customer letting them know where their order is
Price stock portfolios using free on-line quote servers
The PicLan-IP Mail Server is a standards-based internet mail server. Support
is included for the SMTP and POP3 protocols including full DNS MX record
resolution. This allows the PicLan-IP Mail Server to participate
as an on-line internet mail server with all mail structures stored in the
PicLan-IP Mail Server
Having a mail server in the MultiValue environment has the advantages
Easier integration with MultiValue applications that need to send and retrieve
mail within application programs.
Integration of email accounts and passwords within MultiValue applications.
Hooks to control mail forwarding and mail filtering with mv/BASIC subroutines.
The PicLan-IP TCP/IP Sockets API provides an easy client-side interface
for applications to directly communicate with TCP/IP streams. This
allows applications programs to use TCP/IP stream connections to exchange
data with other applications or systems. The PicLan-IP TCP/IP Sockets
API is also standardized from system to system, so an application can more
easily be ported between MultiValue host systems.
PicLan-IP TCP/IP Sockets API
The PicLan-IP implementation on D3/Linux takes full advantage
of both the D3/Linux (ProPlus) environment as well as the 32-bit
Linux networking environment to provide a robust, high-performance internet
application environment. Full PicLan-IP support is implemented including
HTTP web client and server, SMTP/POP3 mail client and server, TELNET client,
and TCP/IP sockets API.
for D3/Linux Implementation Details
PicLan-IP server functions are implemented as event-driven mv/BASIC
applications that execute on D3 phantom processes. PicLan-IP
does not consume any D3 user licenses, regardless of the number
of TCP/IP connections utilizing PicLan-IP services. PicLan-IP server
process "threads" are user configurable to take advantage of multi-processor
hardware configurations and scale well with system configuration.
All network traffic is fully buffered using an event-driven Linux deamon
written in the native Unix environment. This offloads most network
control functions from the mv/BASIC environment allowing a very small number
of PicLan-IP server processes to service literally thousands of concurrent
Initial testing with PicLan-IP on single processor Pentium systems show that the
D3/Linux environment is capable of driving full T-1 or greater internet
web applications assuming a reasonable application design. There appears to be
no reason to distribute most applications to multiple systems or to use external
web server engines. On more substantial systems (dual-processor Pentium 400MHz
systems) some benchmarks actually saturated fast ethernet (> 80Mbit/sec) so
accurate numbers are difficult to determine. Active page hit rates above 200hits/second
(720,000/hour) have been measured Users interested in performance or security
options should look at the "PicLan-IP for NT Security and
Performance White Paper". With PicLan-IP, you can run both your internet
and local user solutions from a single centralized host. If you wish to
discuss performance specific issues, including the results of webstone
benchmarks, please contact firstname.lastname@example.org.
© Copyright 1996-1998 Modular Software
Corporation.All rights Reserved.