Deployment Architecture


K2 includes a brokered, distributed server architecture that offers fault tolerance, load balancing, and growth potential for your client application. Brokering your users’ searches can increase both the amount of information that can be included in a search and the number of simultaneous users that can be supported—with little degradation in performance.

As shown earlier in Figure 1-3, the upper layers of the K2 architecture consist of the K2 client, the K2 Broker, and the K2 Server. In a distributed environment, they might interact as shown in Figure 1-4.


Figure 1-4    K2 Distributed Architecture



This example shows a single client potentially accessing many different collections.

The K2 application is a Verity client. It is integrated with K2 through Verity APIs. It provides the search, content organization, and social network functionality to users.

 

The client can connect directly to a K2 Server, but in a distributed environment the client connects to a K2 Broker.

The K2 Broker is a service that is an intermediary. It receives requests from a K2 client and distributes them to available K2 Servers. Multiple brokers can execute on one machine, or they can be installed on separate machines.

 

Each K2 Broker connects to one or more K2 Servers. It distributes the requests it receives among the active K2 Servers that are attached to it. A broker can communicate with all its K2 Servers simultaneously, whether on the same machine or on different machines.

In cases where the application searches multiple collections, each K2 Server performs its appropriate portion of the task and returns the results to the broker, which is responsible for consolidating the results and returning them to the application.

The K2 Server is a service that receives requests and performs searches of collections, knowledge trees, and parametric indexes. It also provides recommendations. A K2 Server can accept requests directly from a client, but in a distributed environment those requests usually come through a K2 Broker.

 

Each K2 Server connects to one or more Verity collections, which are the index structures that the K2 client searches.

For more information on K2 Server/Broker configurations, see Designing a K2 Server/K2 Broker Deployment.