i2 Analyze and the i2 Connect gateway

In an i2 Analyze deployment, you can provide users with access to an Information Store, or enable them to query data in one or more external sources, or both. i2® Analyze deployments that are targeted at external data access include the i2 Connect gateway alongside or instead of the Information Store.

In a complete solution, the i2 Connect gateway provides i2 Analyze with information about what connectors and services are available and how clients are to use them. i2 Analyze passes client requests for data to the gateway, which receives and responds to the requests on behalf of those services.

Each connector contains the code that interacts with an external data source, the definitions of the services that it supports, and the descriptions of how clients might present its services to users. For example, clients need to know the following information:
  • The name and description of each service
  • Whether a service requires users to authenticate before they can use it
  • Whether a service supports parameters that users can specify when they run it
  • The input controls to display, and the validation to perform, for each parameter
  • Whether a service behaves differently as a result of the current chart selection (Any selected records are then seeds for the operation that the service performs)

One of the roles of the gateway is to retrieve this information from all the connectors that i2 Analyze knows about. It can then help to ensure that requests to and responses from services are formatted correctly.

In solutions like these, a connector is an implementation of a REST interface that enables the gateway to perform its role. More specifically, a connector must support the following tasks:
  • Respond to requests from the gateway for information about its services
  • Validate and run queries against an external data source, including any queries that require parameters or seeds
  • Convert query results to a shape that the gateway can process into i2 Analyze records

Writing a connector requires you to develop an implementation of the REST interface that the gateway expects, and to write queries that retrieve data from an external source. You must also understand the i2 Analyze data model, and be able to convert the retrieved data so that it conforms to an i2 Analyze schema.

The examples that i2 provides in the open-source repository at https://github.com/i2group/analyze-connect demonstrate meeting several of these requirements in fully functional connectors. The remainder of this section explains how to meet them in more detail.

Note: For information on securing the communication between the i2 Connect gateway and its connectors, see Client authenticated Secure Sockets Layer and the i2 Connect gateway.