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:
-
Part 1 - Overview
- Provides an overview of the Geolocation application that will be developed using OpenDXL Bootstrap
-
Part 2 - Installation
- Walks through the steps to install the OpenDXL Bootstrap application
-
Part 3 - Create Application
- Details the steps to create the Geolocation application using OpenDXL Bootstrap
-
Part 4 - Create Client Wrapper
- Details the steps to create a client wrapper that is used to invoke the Geolocation service
-
Part 5 - Package Distributions
- Walks through the steps necessary to distribute the developed Geolocation application and associated client wrapper
Additional Information
The OpenDXL Bootstrap Wiki contains a wealth of information related to the use of the bootstrap application. Some key documents include:
- Template Documentation
- Supporting Classes
- Frequently Asked Questions (FAQ)
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.).