MultiValue Implementation Information
Pick Systems

AP/Pro

AP/Pro is a native Pick implementation that executes in 32-bit flat-model memory space on Intel x86 PC systems.  Maximum system configuration is 257 interactive terminal users.  Systems have 486 thru Pentium II (and maybe Pention III) processors with potential disk storage exceeding 100 gigabytes (although most systems are 2-10 gigabytes).

PicLan-IP is implemented on AP/Pro as an extension driver to the PicLan ethernet IPX product which Pick systems bundles with AP/Pro.  When PicLan-IP is loaded, TCP/IP supported is added to the existing PicLan ethernet driver.  PicLan IPX functions continue to operate and can be used concurrently with PicLan-IP TCP/IP functions.

The low-level PicLan-IP TCP/IP stack is implemented as an event-driven "state machine" (this is also how the PicLan IPX support layer is implemented).  This provides for a very high performance TCP/IP stack with minimal memory usage.  Maximum TCP/IP configured support is for about 4000 concurrent connection streams with up to 50 configured IP addresses on the local host system.

High-level PicLan-IP functions like HTTP and SMTP/POP3 services are implemented as standard Pick/BASIC programs that run on phantom processes.  Other than inbound TELNET sessions, PicLan-IP server processes do not consume any AP/Pro user licenses regardless of the number of users accessing the system.

D3/NT

D3/NT is a hosted Pick implementation that executes as a Win32 application on Windows NT.  Support is also included for use with Windows 95/98, however most users opt for Windows NT because of increased reliability and performance.

Application written for D3/NT can execute in several locations.  PicLan-IP executes within the D3 VME or Virtual Machine Environment.  Most temporary data files that PicLan-IP uses are best stored within the VME, although some larger files such as email storage files and web server log files can be redefines as FSI files with only minor degredation in performance.  User application files can be defined either within VME or FSI files.

The PicLan-IP implementation for D3/NT uses a low-level Windows DLL (Dynamic Link Library) implemented in 'C'.  This library off-loaded many network communications and buffering functions from PicLan-IP into a lower-level language.  Becuase of the nature of the D3/NT VME, the library actually runs within the same process memory space as D3 itself.  To maximize performance, the support DLL makes full use of Win32 synchronization and thead functions to create a fully event-driven environment that requires no polling.

High-level PicLan-IP functions like HTTP and SMTP/POP3 services are implemented as standard Pick/BASIC programs that run on phantom processes.  All PicLan-IP programs (as well as user application code that PicLan-IP calls) is compiled with the supplied D3 FlashBasic compiler for maximum performance.  Because PicLan-IP processes execute exclusively on D3 phantom processes, no D3 user licenses are consumed regardless of how many users are accessing PicLan-IP server functions.

D3/Unix

D3/Unix is a set of Pick D3 implementations running on various flavors of Unix.  PicLan-IP is currently shipping for D3/Linux (also called D3/ProPlus).  Ports for D3/AIX and D3/SCO are currently underway with other platforms planned.

The PicLan-IP implementation for D3/Unix shares much with the PicLan-IP D3/NT platform.  The one exception is the architechure of the low-level communications manager library.  Because D3/Unix does not execute all Pick processes within a single Unix application process space, PicLan-IP cannot use a single shared library.  Instead, PicLan-IP implements a local RPC (Remote Proceedure Call) mechanism and runs the PicLan library as a Unix daemon.  This allows centralized communications management functions which still providing for a poll of PicLan-IP processing resources.

The link between Pick processes and the PicLan-IP communications daemon is very flexible operating over either local socket "pipes", an enhanced version using socket "pipes" and shared kernel memory segments, and remote socket "pipes".  This allows flexibility in locating the communication daemon with a number of system configurations and even provides the ability to run the daemon on another system.  Particularily with the daemon running on the local system, the performance is quite stunning with very little overhead attributed to the process to process RPC calls.  Also the implementation does provide for a completely event-driven environment with no process polling required.

High-level PicLan-IP functions like HTTP and SMTP/POP3 services are implemented as standard Pick/BASIC programs that run on phantom processes.  All PicLan-IP programs (as well as user application code that PicLan-IP calls) is by default compiled with the supplied D3 FlashBasic compiler for maximum performance.  While it is possible to run PicLan-IP in non-Flashed mode, the FlashBasic compiler does provide signifigant performance advantages.  Because PicLan-IP processes execute exclusively on D3 phantom processes, no D3 user licenses are consumed regardless of how many users are accessing PicLan-IP server functions.