IntroductionΒΆ

The BonFIRE software stack is made up of many software components. These software components are documented here to provide information for BonFIRE software developers whether they be new developers or developers of one component who need to understand the relationship between that component and the other components of the BonFIRE system. The documentation contains information about component architecture, responsibility, APIs and relations with other components of the BonFIRE System.

The BonFIRE R4.1 software architecture is show here:

../_images/Architecture.png

BonFIRE architecture

The BonFIRE architecture overview presents the software components by grouping them with different colours:

  • User facing components and APIs are shown in blue.
  • Internal components and APIs are shown in yellow.
  • Virtual Machine images that contain BonFIRE functionality that can be deployed on a per-experiment based as specified by experimenters are shown in green.

The lowest point of entry for users is the Resource Manager. The Resource Manager supports the creation, manipulation and deletion of resources on a per-resource basis. The Resource Manager uses the Enactor to communicate with the BonFIRE sites.

It is the role of the Enactor to convert OCCI requests from the Resource Manager into requests suitable for the specific site. The Enactor also converts responses from the sites into a consistent form for the Resource Manager.

The Experiment Manager adds layer on top of the Resource Manager that allows users to specify the initial deployment and configuration of all the resources in the experiment within a single document. The Portal provides a graphical user interface that can be used to interact with both the Resource Manager and the Experiment Manager.

As well as the Enactor the Resource Manager users the Collection Cache, Scheduler, Accounting Service and Authorization Service to implement its functionality.

The Collections Cache listens to events from all sites to keep track of the current state of each resource. This information is used by the Resource Manager to efficiently support collections requests (i.e. requests that ask for details of more than one resource). Adding the collection cache greatly improves the usability of BonFIRE for large experiments and also the responsives of the BonFIRE portal which needs to display the current stats of multiple resources.

The Scheduler is used to implement BonFIRE’s reservation system. It keeps track of the various time slots and which resources reserved at which time. BonFIRE uses the OAR scheduler.

The Accounting Service keeps track of the lifetime of each resource so that the BonFIRE project understands how experimenters are using the system. This is also the data that would be required by a billing system.

The Authorization Service is used to ensure that experimenters do not overuse their allocatate quote of BonFIRE resources.

The Message Queue Server is used by many components of the BonFIRE system. It is used to notify components about events and leads loosely coupled system. For example, events are written to the message queue whenever a VM changes state. This information is useful to the Collection Cache and the Accounting Service. These components subscribe to be message queue so they are notified of such events.

LDAP-based Identity Management is used my several components to authenticate users and to store the users’ SSH keys.

Previous topic

BonFIRE software documentation

Next topic

Portal

This Page