Application Development

Application

Products and services based on AggreGate Platform are technically delivered as sets of device drivers, custom data processing/storage/visualization plugins, and applications.

Those applications comprise models, alerts, reports, dashboards, event filters, scheduler tasks, and other resources pre-configured for solving specific industry's business objectives. For example, our Network Manager product includes the “Network Traffic Overview” dashboard, and SCADA/HMI product comes with the “Filter Plant” demo HMI widget.

Applications are used for:

  • Delivering your product to end customer servers (via AggreGate's or partner's App Store) or enabling DevOps processes for your platform-based service
  • Enabling team development across IT landscapes, such as dev, test, RC, or production (by publishing application resource sources/templates in a Version Control System, such as Git or Subversion)

In every installation, application's resources can be created on demand. Once resources are deployed, system administrators can make changes to them. However, there is a way to protect application resources from modification and reverse engineering.

Managing Application Resources

New versions of your product often come with updated sets of resources. However, updating any resources that were modified on end customer's production server may cause loss of those local changes.

To deal with those issues, AggreGate Server supports multiple resource management techniques:

  • Resource Grouping. Each resource is a member of a certain group (e.g., Network Management) and optional subgroup (e.g., Database Management). This simplifies searching and filtering resources during their creation/update/removal operations.
  • Modification Tracking. Once a bundled resource was modified by local system operators, it's tagged and no longer auto-updated if a newer version comes with the system upgrade. However, it's possible to update it manually by passing a change loss warning, e.g. after creating a clone.
  • Resource Versioning. Each resource has an associated modification history helping local administrators to decide whether a local copy should be updated.
  • Dependency Tracking. If a dashboard that includes ten widgets and an event log was selected for creation, operators would be prompted to create all dependent resources. This guarantees application's functional consistency.