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

Describes the security classes that provide login, logout, and token management functionality. The key authentication interfaces include Authenticator, Identity, and IdentityScope.
Describes the client connection model and how connections are managed. The services provided by the Session Manager ties the naming and directory services to the authentication services. The key session management interfaces include SessionManager, Session, and Authenticable.
Includes descriptions of the majority of the functionality represented by NJCL. These services are included in the JNDI providers (NDS, Bindery, File System, LDAP, NCPExtensions, Queue Management System, and Server). Novell's NetWare services actually tie together several of the naming/directory services (NDS, bindery, and file).
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.