3 Modules

TNC is defined by the TNC-WG as an open and generic architecture that is flexible throughout the use of different bindings for the interfaces that exist between its internal elements. Further, the TNC-WG has specified an API between an IMC and TNCC as well as between an IMV and TNCS for an uncoupled implementation and integration of IMC and IMV components. jTNC is developed, such as it offers the same flexibility and supports the detached implementation as well as integration of IMC and IMV components. Therefor, the architecture of jTNC is separated into the modules depicted in Fig. 1. The main modules IM, TNCCS and TRANSPORT relate to the communication layers of the TNC architecture. The module IM contains the functionality that is needed for the development of an IMC or IMV. The module TNCCS contains the functions, which are necessary for the implementation of a TNCC or a TNCS. The module TRANSPORT is used by the module TNCCS and contains all functions that are needed for the communication of TNC data between an NAA and NAR. Additionally, the module TNCCS as well as the module IM are using the modules IF-IMC API and IF-IMV API. These two modules contain the API that is used between a TNCC and an IMC (IF-IMC API) or a TNCS and an IMV (IF-IMV API) as defined by the TNC-WG for Java. This leads to the fact that the modules TNCCS and IM are not directly related to each other. The modules MESSAGE and IF-COMMON support the modules IM, TNCCS and TRANSPORT. The module MESSAGE contains the functionality that is used to decode and encode TNC data to and from message objects that are used by the modules for further processing. On the other hand, the module IF-COMMON contains general helper functions for the modules IM, TNCCS, TRANSPORT as well as MESSAGE and encapsulates functions that are specified by the TNC-WG in the specifications IF-IMC 1.3 and IF-IMV 1.3 redundantly. This applies to the error handling and the management of protocol properties (cf. [3, pp. 73, 77-79, 81-82] and [4, pp. 84, 87-90, 91-93]). jTNC supports the implementation of an AR or a PDP for an arbitrary Java based application. Therefor, the above mentioned modules have to be integrated into the application using interfaces provided by jTNC to interact with these modules. In the following, the modules of jTNC are described in more detail and the interfaces are introduced, which can be used to interact with these modules for a successful integration.


PIC

Figure 1: Architecture of jTNC

 3.1 IF-IMC API
 3.2 IF-IMV API
 3.3 IF-COMMON
 3.4 MESSAGE
 3.5 IM
 3.6 TNCCS
 3.7 TRANSPORT