Dragon Infrastructure

Services in the Dragon runtime interact with each other using messages transported with a variety of different means (mostly Channels). Although there is the Client API to construct and send these messages, the messages themselves constitute the true internal interface. To that end, they are a convention. Developers should use this API to add functionality to the Dragon Services through new messages. It is not meant for users.

Reference

Python Components

channel_desc

A class that uniquely defines properties of a managed channel for infrastructure communication.

connection

Internal objects required for infrastructure process communication.

facts

Specified constants and names used in the Dragon runtime.

group_desc

A class that uniquely defines properties of a managed Group of resources for infrastructure communication.

messages

Dragon infrastructure messages are the internal API used for service communication.

node_desc

A class that uniquely defines properties of a managed hardware node for infrastructure communication.

parameters

Launch parameters for Dragon infrastructure and managed processes

policy

pool_desc

A class that uniquely defines properties of a managed memory pool for infrastructure communication.

process_desc

A class that uniquely defines properties of a managed Process for infrastructure communication.

standalone_conn

A quick and dirty scheme for doing single node channels by themselves.

util

Python infrastructure utilities.

C Components

Architecture

../../_images/infrastructure_architecture.svg

Fig. 19 Architecture of the Dragon Infrastructure API

Fig. 19 shows a UML2 component diagram of the Dragon infrastructure API and its components.

The infrastructure API is consumed by Dragon Services: Local Services, Global Services, Launcher Backend, and the Transport Agents. It consists mostly of conventions, like message types and common IDs. The API also implements a basic connection object that abstract Channels for convenience and performance.