FLAME User Guide

This comprehensive guide will walk you through setting up and using FLAME for collaborative design environments that use XTEAM. The XTEAM design environment estimates memory usage, energy consumption, and message latency of message-oriented systems.

Note: This guide uses XTEAM as an example design environment. You may need to integrate FLAME into your specific design environment based on your project requirements.

System Architecture

FLAME deployment consists of three main components:

  1. Server-side: Central coordination and conflict management
  2. Detector-side: Conflict detection and analysis engines
  3. Architect-side: Client interfaces for architects
High-level architecture of FLAME showing the three main components and their interactions

Figure 1: High-level architecture of FLAME

Setting up FLAME Components

Architect-Side Preparation

FLAME enhances conventional copy-edit-merge collaborative software design environments with high-order proactive conflict detection. On the architect-side, FLAME uses:

  • A modeling tool-specific adapter (FLAME Adapter) that captures modeling changes via the tool's APIs
  • A FLAME Client installed at each architect's location to establish communication channels

Prerequisites

Operating System
  • Microsoft Windows (7 SP1, 8, 8.1, 10, or 11)
  • 64-bit or 32-bit versions supported
  • Full incremental updates recommended
Required Software
  • Java 7 or newer
  • Apache Ant (for building from source)
  • Generic Modeling Environment (GME) 12.12.11
FLAME Components

Setup Steps

1. Configure Java and Ant
  1. Add Java's /bin directory to your PATH environment variable
  2. Set JAVA_HOME to Java's home directory
  3. Add Ant's /bin directory to your PATH
  4. Set ANT_HOME to Ant's home directory
2. Register the Modeling Paradigm
  1. Download the AssortedxADL paradigm
  2. Open GME
  3. Navigate to Tools → Register Paradigms
  4. Click Add from file
  5. Select AssortedxADL.xmp from the extracted files
  6. Click Open to complete registration
3. Register the FLAME XTEAM-GME Adapter
  1. Get the FLAME Adapter from GitHub or Binary
  2. Open GME
  3. Create a new project using the AssortedxADL paradigm
  4. Navigate to Tools → Register Components
  5. Click Install New
  6. Select CoDesign.dll
  7. Click Open to complete registration
4. Configure FLAME Client
  1. Extract the SWT.jar into FLAME Client's /lib directory
  2. Update build.xml (line 17) with your SWT version
  3. Copy config.properties.template to config.properties
  4. Edit config.properties with your server details
5. Configure System Requirements

Edit XTEAM_Info.dat to specify system requirement thresholds:

# Format: [Analysis type], [Column index], {[Target] [operator] [threshold], ...} Energy, 1, Total<7000000 Memory, 1, Maximum<30 Latency, 2, Average<7, Success>95

Server-Side Preparation

The server-side components manage connections between FLAME Clients and Detection Engines, coordinating the distribution and analysis of modeling changes.

Prerequisites

The server-side requires the same Java and Ant setup as the architect-side, plus:

  • FLAME Server from GitHub
  • Eclipse SWT library for your server's OS

Configuration Steps

Follow the same configuration steps as the architect-side for:

  1. Java and Ant environment variables
  2. Creating and editing config.properties
  3. Configuring XTEAM_Info.dat

Detector-Side Preparation

Detection Engines are similar to FLAME Clients but operate autonomously with integrated conflict detection tools. Each Detection Engine maintains its own model version and detection capabilities.

Prerequisites and setup steps for the detector-side are identical to the architect-side configuration.

Slave Nodes Preparation

FLAME's Slave Manager component enables distributed processing by managing a pool of slave nodes for parallel conflict detection.

Model of detector-side architecture showing slave nodes for distributed conflict detection

Figure 2: Detector-side architecture with slave nodes

Google Compute Engine Setup

  1. Subscribe to Google Compute Engine
  2. Download the FLAME GCE scripts
  3. Update variables.sh with your GCE configuration

Launching FLAME Components

Launching FLAME Server

> ant FLAMEServer

Launching Detection Engines

> ant DetectionEngine

Launching FLAME Client

> ant FLAMEClient

Final Notes

FLAME's architecture enables proactive notification of high-order conflicts before architects perform updates. This early detection significantly reduces the cost and complexity of conflict resolution in collaborative software design projects.

Need Help?

For questions or support, contact:

Jae Young Bang
Cyberonix Experts, LLC |