Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesNovell Builds a NEST


August 1995 / Core Technologies / Novell Builds a NEST

Novell Embedded Systems Technology makes NetWare portable and embeddable

Salvatore Salamone

Novell has a vision called pervasive computing. It includes a goal of 1 billion devices connected to NetWare networks by the year 2000. This is an ambitious goal because there are only 40 million NetWare nodes (give or take a few million) currently deployed worldwide. To make it happen, Novell isn't talking about adding just PCs, Macs, and Unix workstations.

Instead, Novell is targeting devices that have not previously been connected to networks. It hopes that half of the billion nodes will come from embedded devices, things such as environmental controls, TV set-top boxes, and even vending machines.

The idea is to make such devices network -aware. They can then be connected directly to a network and take advantage of such NetWare services as directory and print services. At the same time, these devices would be able to share information with other devices on the network. And, if developers so desire, they may choose to make these devices intelligent enough to be managed through a common control or management system.

The way to make such devices network-aware is to embed NetWare into each device. To do this, Novell has developed NEST (Novell Embedded Systems Technology), which is essentially a portable version of NetWare.

NEST might be deployed, for example, in a building's temperature-control system. NEST-enabled sensors located throughout a building would pass temperature data back to a central location, where the data could be analyzed and actions taken based on the information. Rather than simply cranking up all the air conditioners in an office, a command could be sent only to the NEST-enabled air conditioner nearest a heat so urce or a device that is the most heat-sensitive (e.g., a minicomputer in an office).

Because many existing control systems use proprietary communications architectures, something as simple as selective cooling of an office is difficult to accomplish. Typically, the temperature sensors and the heating/cooling control system would not have the ability to be synchronized to the extent that a specific air conditioner could be instructed to operate independently from the others on a floor.

The Power of Flexibility

NEST has the potential to change things by offering a common communications architecture (NetWare) and a way to connect devices to that architecture. Novell designed NEST to be a flexible OS because of the large differences in the products on which it will run.

Novell found that between 70 percent and 80 percent of the OEMs interested in NEST use proprietary OSes in their devices. Any embedded NOS (network operating system) would have to be able to work with all these device OSes. Additionally, a wide variety of processors are used in the devices that are candidates for NEST. And the amount of memory available in many NEST candidates is typically low. Taking these factors into account, Novell developed NEST to be portable, modular, and device OS-independent.

To help deal with the variations in amounts of memory and the different types of functions that might be embedded into a device, NEST uses a modular, layered design (see the figure "The NEST Design" ). It lets developers select the amount of connectivity and services they want.

The basic functional areas for NEST are the connectivity layer, the NetWare services layer, an application layer, and an OS interface. The connectivity layer provides data transport and low-level services based on Novell's ODI (Open Data-Link Interface). This layer includes several functional areas, including the MLID (Multiple Link Interface Driver), which is the ODI layer that can receive packets destined for different protocol stacks within the device. The MLID can also let a single protocol stack simultaneously access multiple network topologies, such as Ethernet and FDDI (Fiber Distributed Data Interface).

Right above the MLID is the LSL (Link Support Layer), which handles communications between the MLID and the protocol stacks. IPX and SPX protocol stacks are also within the connectivity layer.

Next comes the NetWare services layer, which gives the device access to the services available from a NetWare server. These include connection, file, print, message, bindery, and authentication services, all of which can be made available to the device. Developers can choose the services they wish to use from client API libraries.

Also included in the NetWare services layer is the NEST requester, which is a module that builds protocol packets and provides send/receive support services. For example, these services might include packet-burst support, to more efficiently transfer bulk dat a, or auto-reconnect service, to automatically restore a dropped connection. The requester can be used to add packet signatures and RSA (Rivest-Shamir-Adleman) authentication services (if so desired for security).

Riding on top of the NetWare services layer is the application layer, which contains the programs that control the operation of the embedded system. The applications can be provided by an OEM, a third-party developer, and Novell. Two applications are included in the NEST SDK (Software Development Kit) 1.0. The first one is the Embedded PSERVER, a version of NetWare PSERVER NLM (NetWare loadable module), which lets a printer read and transfer files from a NetWare print queue for printing. The second one is the Embedded NPRINTER, a version of the NetWare remote printer program NPRINTER, which lets a printer establish connections to a NetWare server and transfer files from the PSERVER running on that server.

For portability, NEST is written in ANSI C, with OS and CPU dependencies kept to a minimum (see the table "OS/CPU Dependencies" ). As a result, NEST supports most common processors, including Intel's x86, AMD's 292xx, and Motorola's 680x0.

The last functional part of NEST is the OS interface, which is called POSE (Portable Operating System Extension). POSE is a Posix-based API that defines all the OS services required by NEST, such as memory management, task switching, synchronization, and timing.

The beauty of this modular approach to NEST is that developers can choose just the functions they need, thus saving system resources such as memory. For example, a device with simple broadcast requirements needs only the MLID and LSL for connectivity and an IPX protocol stack and IPX functions to transmit the information. To provide guaranteed delivery of the information, a developer simply adds the SPX protocol stack. (SPX provides a connection-oriented service between the device and the controller that guarantees packet delivery.)

First Implementat ions

While NEST must be adopted by equipment manufacturers whose devices have not traditionally been connected to networks, the first practical implementations are coming from a mix of networking hardware vendors and control-system vendors. Among those showing an interest in NEST are CD-ROM jukebox vendor Microtest (Phoenix, AZ) and building-automation product vendor Andover Controls Corp. (Andover, MA).

Several printer vendors have embraced NEST, including QMS (Mobile, AL), Lexmark International (Greenwich, CT), GCC Technologies (Bedford, MA), and Digital Products (Waltham, MA). All four vendors cite a similar reason for using NEST in their products -- tighter integration with NetWare 4.x services (e.g., the directory and authentication services).

The ability of NEST-enabled devices to directly communicate with a central management system (network management or otherwise) has spawned talk of NEST-enabled vending machines. Supplies in the machine can be inventoried remotely. An y device that contains a consumable, be it toner in a printer or Twix bars in a candy machine, could benefit from NEST.

Besides knowing when to refill a machine, a company could identify buying trends in real time and make adjustments accordingly (i.e., remove a poorer selling product and add extra Twix bars). Or, utility companies could use NEST-enabled meters to read gauges in homes and send a truck to fill up oil tanks when they are getting low.

While there was interest from most of the developers attending the NEST track at Novell's Brainshare conference earlier this year, many said they will proceed cautiously. They've seen similar efforts in the past that have initially shown great promise but have then fizzled out. One example is Microsoft At Work, which offered a simplified way to connect office equipment such as computers, copiers, and printers (see "Whatever Happened to...?," July BYTE, page 30).

NEST may also face a challenge from another industry effort aimed at extending NOS features to devices that normally do not have them. In February, 15 companies (IBM and 14 Japanese companies, including Ricoh, Matsushita Electric Industrial, and Sharp) announced an initiative to develop a standard for office-equipment communications.

No matter how many vendors eventually support NEST, Novell has a long way to go to reach half a billion NEST nodes from embedded devices by the year 2000. To achieve this lofty goal, NEST devices must be added to networks at a rate of over 250,000 per day -- every day -- until the end of the century.


PRODUCT INFORMATION

 

NEST SDK 1.0

  
$50,000 for a five-developer license,
 which includes
    source code, documentation, support, training, and test tools

Novell, Inc.
Provo, UT
(800) 453-1267
(801) 429-7000
fax: (801) 429-5155


OS/CPU DEPENDENCIES


-- CPU
 must be 16-, 32
-, or 64-bit

-- OS
 must be preemptive multitasking, with thread and semaphore support

-- NEST
 reconciles byte order, data type size, and data alignment



The NEST Design

illustration_link (8 Kbytes)

The layered NEST architecture ensures processor and OS independence, while letting developers pick and choose the services they need.


Salvatore Salamone is a BYTE news editor based in New York. You can reach him on the Internet or BIX at ssalamone@bix.com .

Up to the Core Technologies section contentsGo to previous article: Building the Better Virtual CPUGo to next article: PostScript SinsSearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network