Using the Python OpenDXL Bootstrap Application

The purpose of OpenDXL Bootstrap is to significantly reduce the time necessary to create an OpenDXL solution. OpenDXL Bootstrap automatically generates the structure and related files necessary to develop an Data Exchange Layer (DXL) solution with Python.


The generated files include the Python source files necessary to build the solution, standard Python files such as setup.py, a documentation structure for the solution, and other files based on the type of project being generated (Dockerfile, etc.). In addition to generating projects, OpenDXL Bootstrap also includes a set of utility methods that simplify the development of OpenDXL applications.


Multiple templates are available which control the type of project to generate (a client wrapper, a persistent application which exposes services, etc.).

Application Template

The Application Template generates an OpenDXL application. An application runs persistently and can listen for DXL events, register DXL services, and send events on a periodic basis.


The application template is typically used to accomplish the following:

  • Execute a set of orchestration steps in response to receiving particular DXL event messages
  • Expose a DXL service that responds to incoming DXL request messages (request/response)
  • Sends DXL events on a periodic basis

Examples of applications developed using OpenDXL Bootstrap include:

Client Template

The Client Template generates an OpenDXL "client wrapper". The purpose of a client wrapper is to allow users to access the features of a DXL fabric (services and events) without having to focus on lower-level details such as message topics, message formats, etc.


Examples of client wrappers developed using OpenDXL Bootstrap include:

Tutorial

The OpenDXL Bootstrap Wiki contains a tutorial that walks through the steps to create an OpenDXL application that exposes a DXL service and an associated client wrapper. The service created in the tutorial allows for DXL clients to query Geolocation information for IP addresses and host names.


Each portion of the tutorial is summarized below:

Additional Information

The OpenDXL Bootstrap Wiki contains a wealth of information related to the use of the bootstrap application. Some key documents include:

Summary

OpenDXL Bootstrap can significantly reduce the time necessary to create an OpenDXL solution. Additionally, the bootstrap application standardizes the way OpenDXL projects are created, allowing for ease-of-distribution, consistent documentation, and artifacts that enable integrations with related technologies (Docker, etc.).