Modular Software is pleased to announce the immediate availability of PicLan-IP for the Unidata MultiValue DataBase Management System (Unidata DBMS) hosted on Microsoft Windows NT.
PicLan-IP brings a new level of performance, versatility, and simplicity to internet applications that make use of the Unidata DBMS. 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.
|Contents: ...||The PicLan-IP Coyote Web Server
The PicLan-IP Web Client
The PicLan-IP Mail Server
The PicLan-IP TCP/IP Sockets API
PicLan-Ip for Unidata/NT Implementation Details
There are a number of reasons why running the Web Server as a MultiValue application makes sense:
|Web Server||Built-In||Requires External Server|
|Performance||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.|
|Setup||Easy - all configuration items are controlled within the MultiValue environment.||Difficult - Multiple products must be installed and configured in several run-time environments.|
|Control||Excellent - All web functions are controlled within the MV environment.||Poor - Web Server functions are beyond the reach of MV applications.|
|Logging||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.|
|Development Environment||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.|
|Error Reporting||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.|
|Live Development||Excellent - Applications can be updated real-time with live users on-line.||Poor - server components may need to be restarted with many type of application changes.|
|Application Persistence||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 for item-locks.|
|Reliability||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.|
|Cost||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 implementation.|
|HTTP/1.0 Standard||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).|
|Virtual Hosting||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 define.|
|The PicLan-IP web server implementation is fully multi-threaded taking full advantage of multi-CPU hardware platforms and overlapped I/O and CPU processing.|
|Server-side Caching||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.|
|Standard||Any web page can include mv/BASIC source code to generate dynamic web responses.|
|Default||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.|
|Error||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 is servicing.|
Some applications for the PicLan-IP Web Client might include:
Having a mail server in the MultiValue environment has the advantages of:
PicLan-IP server functions are implemented as event-driven Unidata/BASIC applications that execute on Unidata phantom processes. PicLan-IP does not consume any Unidata 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 and event-driven in a helper service written in the native Win32 environment. This offloads most network control functions from the Unidata/BASIC environment allowing a very small number of PicLan-IP server processes to service literally thousands of concurrent TCP/IP connections.
Final performance tuning of the PicLan-IP Unidata/NT implementation is still underway. Current benchmarks show a transaction rate of just over 20 hits/second when running Unidata/NT on a dual-processor Pentium 200 MMX system. This is about 50% saturation of a T-1 line with dynamic content. Additional performance tuning is in works and final production performance is likely to be somewhat better than this.The performance of PicLan-IP running with Unidata/NT is somewhat slower than other NT MultiValue implementations. This appears to be due to the inherent nature of UniBasic and it's somewhat slower execution than the Universe, D3, and mvBase run-time BASIC environments. Regardless, with current hardware, saturation of a full T-1 internet connection should be possible with multiprocessor Pentium-II systems. As such, there appears to be no reason to distribute most applications to multiple systems or to use external web server engines. 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.