X-title-e:  NLM-based job control languages make your job easier
X-title-r:  Основанные на NLM языки управления заданиями облегчают жизнь
            (в статье кратко упомянута REXXWARE -  реализация REXX v4.0 для Netware)
X-author-e: David Willis, David Cox
X-author-r: Давид Виллис, Давид Кокс
X-file: rexxware


  NLM-BASED JOB CONTROL LANGUAGES MAKE YOUR JOB EASIER

        By David Willis and David Cox



   You need spare CPU power to administer your NetWare network properly.
   If you regularly rebuild your e-mail system or a database, want to
   automate transfers with a host computer, or simply want to monitor
   devices, the typical approach is to dedicate a network-connected PC to
   each task. Before you know it, you've built a Great Wall of PCs to
   handle these administrative functions.

   If you've removed from your NetWare servers any directly connected
   printers and you're not running application or database NetWare
   Loadable Modules (NLMs), your CPU is likely sitting idle most of the
   time. So why not use these extra server CPU cycles for these tasks?
   Because writing NLMs in C is too darn hard. It requires programming
   expertise, the Watcom C Compiler, time to study the Applications
   Programming Interface (API), a nonproduction test server and lots of
   careful debugging. And it's still a waltz in a minefield. Do it wrong
   and you kill production servers or compromise system security.

   The Tools Are There We tested four tools that provide higher-level
   language support for NetWare server-based processing: Knozall Systems
   NLMerlin, HiTecSoft ManageWare, Simware REXXWare and Circuit Masters
   Software's Phantom of the Console. These products run the gamut from
   simple NLM loader to sophisticated programming language to distributed
   processing system. For comparison purposes, we included a rating of
   the Watcom C compiler in our report card.

   As a metric for comparison, we built a test application that displayed
   remaining space on all volumes of all servers on an internetwork--a
   fairly common need for most LAN administrators.

   For those system administrators who can afford it, NLMerlin is the
   best general-purpose distributed processing system. REXXWare works for
   programmers who want to avoid C programming but retain ultimate
   control of the server. ManageWare is built for the developer who wants
   the application to run on client or server, interchangeably, or wants
   to establish peer-to-peer and/or asynchronous communications among
   nodes. Phantom of the Console targets the system administrator who
   only needs to schedule NLM loading and unloading.

   Knozall NLMerlin v2.0

   NLMerlin is the best general-purpose NetWare utility and scheduling
   system we've seen. We love everything but the price--starting at more
   than $2,000, you'll probably have to do some explaining to get this
   nifty tool.NLMerlin provides a BASIC-like language for running tasks
   on file servers or DOS workstations. You can schedule jobs for Windows
   clients as well, using Wilson Windoware's WinBatch (not included). An
   optional REXX module is available.

   NLMerlin has the most flexible architecture and is the basis for a
   truly distributed processing system, while maintaining the strengths
   inherent in each platform. CPU roles are clearly defined: Task Agents
   (workstations or servers) run the jobs; the Administrative Agent (a
   file server) controls job queues and Task Agents; and a job running on
   one platform can request information from another by redirecting
   requests to it. A workstation running under Windows is used to edit
   and submit jobs to the Administrative Agent.

   NLMerlin's System Console is well-integrated. Everything you need is
   accessible from the job status screen, including remote console
   access.

   In contrast to the other products, NLMerlin is built to do task
   scheduling. It's well-implemented but a little awkward. Scheduling
   information and the job program itself are saved together, not as
   separate items, so you have to save a version of the job program when
   you create the job, which seems unnecessary.

   NLMerlin's multilevel security system is excellent. Like REXXWARE,
   NLMerlin uses Netware Queue Management Services to maintain job
   protection.

   The KSI BASIC dialect is primitive as a programming language, though
   you can do a lot with just a few commands.

   Our test program took a mere 11 lines of NLMerlin code and could be
   built by a reasonably technical person in less than an hour.

   Simware REXXWARE Release 1.10

   If you want ultimate control of your servers and are willing to do a
   little programming to get it, REXXWARE is an excellent professional
   product.

   REXXWARE is an NLM-based implementation of REXX v4.0, IBM's
   multiplatform procedural language. If you already understand NLM
   programming and are considering writing noncommercial NLMs in C, give
   this a hard look. It will probably do everything you want C to do, but
   it will get you there faster and at less risk.

   REXXWARE executes tasks on the server only, unlike NLMerlin or
   ManageWare. The canned job scheduling application runs exclusively
   from a Windows-based workstation, although it would be possible to
   write your own REXX routines to run them from the server.

   Because REXXWARE uses NetWare's Queue Management Services, tasks
   typically execute at the security level of the submitting user. The
   REXX program is placed in a protected region on the disk, so another
   user or task cannot change what gets executed.

   Queue users and operators are defined with separate security levels,
   and queue servers may only be accessed with a password. Source files
   can be compiled to protect them from modification and for faster
   execution. A job submitted by a user that does not have supervisor
   privilege yet attempts to run at Connection 0 to achieve this status
   is terminated.

   The REXX language looks a bit like a peculiar form of BASIC. It is of
   a lower level than any of the other products, and it is quite powerful
   at the expense of being cumbersome for the programming-averse.

   Grafted onto the language are 180 of the most important CLIB
   functions, including those that control the NetWare Bindery database.

   Our test application required 60 source code lines and some four hours
   to develop, once we became familiar with the REXX language--a dramatic
   improvement over doing it in C.

   HiTecSoft ManageWare v3.1

   ManageWare, also marketed as HawkNet NetCode, is designed for
   developing applications to run interchangeably on NetWare servers and
   DOS workstations.

   Programmers will find ManageWare more useful than most system
   administrators. It does most of what the other products do, and it is
   inexpensive as well. Unfortunately, it's security is poor and the
   documentation is uneven.

   ManageWare is an object-oriented cross-platform development system
   that can execute tasks on NetWare servers or dedicated DOS clients.
   The compiler version creates royalty-free .EXE or .NLM files. It uses
   a proprietary language that borrows from Xbase and BASIC--a simple and
   powerful language, but still different from anything you've used
   before.

   ManageWare has a number of unique features. It can create a
   peer-to-peer dialogue among DOS workstations or servers simply by
   using the IPX/SPX communications objects. Other available objects
   handle .DBF file management and serial and parallel port
   communications, and a windowing object produces applications that look
   like the C-worthy interface found in the NetWare DOS menu utilities.

   Security is not built into ManageWare--you'll have to protect systems
   yourself. The typical server-based job runs with supervisor
   equivalency, requiring the programmer to log in as another user to
   have more restricted security.

   Scheduling is conducted using a .DBF database, not NetWare Queue
   Management Services, so job definition files could be altered by an
   unprivileged user.

   You can load and control NLMs as you can with the other products, but
   there is no way to read the server's screen. Imagine working on your
   server console with your eyes closed, and you'll have some idea of
   what this means.

   Our test application required 80 lines of code and four hours of
   programming--more than with NLMerlin, but less than with C or
   REXXWARE.

   Circuit Masters

   Phantom of the Console v4.13

   This the simplest and most limited product we tested. It addresses a
   narrow range of needs, with its main function being to supply
   keystrokes to the consoles--load

   and unload NLMs, for example.

   Phantom of the Console provides command-line and menu-driven utilities
   to schedule jobs from a DOS client workstation. All jobs must execute
   at the server, and the DOS component is used simply to send jobs to
   the server. An interactive mode is available for DOS batch files to
   execute commands at the server, returning DOS ERRORLEVELS for error
   handling.

   Circuit Masters throws in few good utilities: one that will
   automatically run VREPAIR on a volume that will not mount during the
   normal boot process, and one that will reboot the server if an abend
   occurs.

   Phantom's security is poor. A single security level is implemented by
   adding user accounts to a Phantom user list. Once on that list, one
   can do whatever one wants on the console. No passwords are required to
   access the NLM.

   Unlike the other products, Phantom will not gather server statistics.

   Phantom's programming language is rudimentary, compared to the other
   products. By the time you read this, Circuit Masters plans to have
   released Phantom v5.10, which the company says will address some of
   these weaknesses.

