Explore Device Cloud on Android and iOS using AggreGate 5.1

The feature list of AggreGate 5.1 may not seem too long, but it includes one major feature that makes it clear how our R&D team spent 2014. New version comes with a production version of Web Desktop, a long-awaited HTML5-based web interface. Beside this, the new release includes new device drivers and core features, as well as extensions of all vertical market solutions based on the Platform.

AggreGate Web Desktop

AggreGate Web Desktop is finally released into production. The new web UI doesn't require Java to be installed on a user machine and, thus, can operate on diverse mobile devices, such as iPhones or Android tablets.

The Web Desktop mimics almost all functions of the Unified Operations Console – it can even run widgets! Everything is here: dashboards, event logs, system trees, data tables and property grids. The only necessity in a desktop client is using visual editors for editing widget and report templates, which is definitely not an everyday activity.

New Device Drivers

AggreGate 5.1 includes a whole new bunch of device drivers for diverse communication standards:

  • OPC UA. Full support of the OPC UA stack.
  • DNP3. Full support for DNP3 application layer: read/write, select and operate, direct operate, event handling, etc.
  • MeterBus. Acquiring spot meter reading values and their history.
  • GPS/GLONASS Tracker. Receiving arbitrary reports from any satellite trackers and other M2M devices via TCP or UDP. Business-rule-based command parsing. Out-of-the-box support for different tracker models.
  • SOAP. Performing arbitrary Web Service calls via SOAP protocol by specifying input data and processing any output.
  • CORBA. Performing CORBA calls via IP network by specifying input parameters and processing any output.
  • SIP. Placing test VoIP calls and retrieving call metrics.
  • VMware. Retrieving hypervisor/VM status and performance counters via VMware API.
  • Asterisk. Monitors and controls Asterisk IP PBX via Asterisk Manager Interface (AMI).

Normal and Roled-based Users

In AggreGate 5.1, a user account can either match a single physical person (e.g. John Doe or Mary Shelley) or a certain role of system operators (e.g. "Log-Angeles Zone Operator", "Report Designer" or "Network Engineer"). User accounts that match individuals are called normal accounts while user accounts matching a role are called role-based accounts.

And fair enough, personal accounts inherit permissions from role-based accounts, allowing setting up complicated access control lists and apply them to a group of system operators.

Active Directory and LDAP Authentication

Large AggreGate installations are operated by hundreds of people, each of them inheriting one of many roles. Creating and maintaining individual user accounts for them all is too laborious. In this case, it's now possible to authenticate users through an LDAP server (such as Microsoft Active Directory), while authorization (assigning of user permissions) will use role-based AggreGate user accounts.

Aggregating Time Series Data

Many reports designed by our partners and customers require grouping of some historical values by hours, days, weeks, and larger time periods. New AggreGate delivers summary function that provides an ultimate solution for grouping time series values and calculating per-device and per-resource minimums, maximums, averages, sample counts, first/last/min/max sample dates, and other aggregates.

In addition to gauge-type values, summary function can perfectly process counters by calculating per-period average/min/max rates. It's compatible with real-time data series, knowing how to extract timestamps from raw samples. Source numeric values can be fetched from event history, variable value history, or a statistics channel.

Add configurable out-of-range value processing and sorting, automatic totals calculation, and unlimited number of various data series processed by a single call and added to output table – and you'll never need to employ scripts for statistical reports.

Managing External Database Tables

Want to manage a list of RFID cards provided or required by a third-party enterprise system?

Table widget component was extended to support management of rows in external data sources. After data was loaded or reloaded, it starts keeping track of new, changed and removed records. If a save operation was triggered, the component processes every new/changed/removed record individually, providing a way to execute INSERT/UPDATE/DELETE queries over an external database or manage data in any external source.

Processing External Alert and Incident Tables

New AggreGate Situation Manager solution built atop of the Platform is tailored for processing alerts and incidents generated by external third-party systems and collected by AggreGate server playing a middleware integration server role.

Alerting engine has been extended for processing alert tables received from external systems via SQL, SOAP, CORBA, SNMP, and other protocols. New concept assumes scanning an external table, creating a dedicated alert instance for every row, and further tracking this instance with a row key evaluated by a user-defined rule.

Alert instances created in this way don't otherwise differ from "regular" AggreGate alerts: they can benefit from deactivation hysteresis, custom notifications, corrective actions, escalation rules, etc.

Running Conditional Corrective Actions upon Alerts

While previous versions of AggreGate could only run corrective actions upon alert activation, new release accepts separate action setup for activation, deactivation, escalation, deescalation, and acknowledgment of an alert. This allows building more sophisticated alert processing workflows.

Virtual Device Networks

Some monitoring applications, such as narrow band radio monitoring, imply strict limits to bandwidth usage caused by the monitoring system itself.

Putting several devices into a Virtual Device Network ensures that AggreGate won't talk to them too much, effectively limiting a number of concurrent I/O sessions. For example, devices connected to a single remote radio modem should be put to a virtual network to get rid of "business traffic" impact.

New Expression Language Functions

Continuing to evolve, AggreGate Expression Language was extended to support many new functions:

  • setVariable() This function changes value of a context variable to a provided Data Table.
  • user() Simple function that returns login of current user.
  • getFormat() Returns format of a provided table.
  • variableReadable() and variableWritable() Those functions check whether current user can read/write a specific context variable.
  • encode() Encodes a data table into a string.
  • split() Splits a string into a list of elements.
  • And more

Advanced Data Table Fields

If a field in any table is marked as Advanced, it's initially hidden from a table browsing/editing view. Advanced fields are shown upon a toolbar button click. However, if a value of an advanced field differs from default, it does not get initially hidden.

Advanced fields help to isolate object parameters that are not widely used. This results in operators interfaces with Normal and Advanced modes.

Referring Expressions from Queries

AggreGate expressions were always able to refer AggreGate queries by using executeQuery function. However, it was not possible to evaluate an expression from a query. New release allows that by introducing a set of query language functions that evaluate AggreGate expressions and convert results to strings, numbers, booleans, and other types. It's also possible to specify a default context and a default table to be used during evaluation.

Data Buffering in AggreGate Agents

AggreGate Agent device driver was updated to support a special Get History function that's called once right after the Agent has established a server connection. Agent-side implementation of this function should return a list of variable values collected and buffered by the Agent during the time when it was not connected to the server. Historical values can be sent in batches of any size.

Default Operator Account

In addition to default administrator account, AggreGate 5.1 includes a default operator account that's fine-tuned for every vertical market solution's mundane operational activities. Operator account is automatically created during the first server startup.

And more

AggreGate 5.1 delivers more than two hundred other minor features and improvements.

Get AggreGate IoT Platform 5.1