1.1 NJCL Basics and Architecture

NJCL plays a pivotal role in Novell's Java architecture by providing access to NetWare® services. These services are used by applications, components, and so forth, to build solutions. NJCL might be considered library-oriented middle-ware.

The following graphic represents the overall Novell architecture for Java and shows where NJCL fits into this architecture. As illustrated, NJCL implements the Java and/or native wrappers for legacy NetWare through the JNDI framework.

Figure 1-1 Overall Novell architecture for Java

In the past, NetWare has had several interfaces to access services, including the file system, bindery, and NDS. One of the first things to understand about NJCL is the JNDI interface, which provides a single interface that helps bring these diverse services together into a coordinated whole. The naming interface presented in JNDI has been used as a framework to coordinate the services provided by NJCL.

The architecture of NJCL consists basically of three areas of functionality, as shown in the following graphic and discussed below.

Figure 1-2 NJCL architecture

The following graphic illustrates how the three functional components of NJCL are tied together. This example shows authentication using contexts.

Figure 1-3 NJCL Authentication Using Contexts

The NJCL implementation is built upon the existing Novell C libraries, NWCalls and NWNet for both Win32 and NLM platforms. The NJCL infrastructure deals with both fat clients (those clients that are installed) and thin clients (those clients that download any code needed at runtime). This strategy creates a back end implementation that can be accessed remotely for the thin client while also handling installed clients. Therefore, at this time all NJCL programs require a NetWare client.