Release Notes 6.1.0

General Notes

ProSyst RM mPower Remote Manager 6.1.0 contains several new components, updated modules, bug fixes and performance enhancements.

Release date: July 2017

Previous Release Notes:

Key:

: New Feature or Improvement

: Change

: Bug Fix

Overview of The Main New Features

Product name changed from mPower Remote Manager (mPRM) to ProSyst Remote Manager (PRM).

Added support for PostgreSQL database.

Bug fixes and improvements over existing 6.0 functionality (maintenance).

System

Version of the module included in this product: 6.1.0

JDBC Connection Manager (system.db-conn.jdbc)

Internal caches now use Guava Cache instead of proprietary LRU Table classes.

A number of fixes/improvements related to recovering of the connectivity to the DB server, after temporal connection lost

mPRM Backend Log Service (system.log.be)

The Log Service now supports (configurable, disabled by default) writing of the log messages in files, instead of storing them in the DB. The following features related to this are added as well:
  • Support for encryption of the devices ids (optional) - for privacy reasons;
  • Logging of device related logs into separate files (optional);
  • Replacement of a pattern in message with a string;
  • Formatter concept - two encodings - plain (standard) and JSON.

Optional (configurable, disable by default) support for fine-grained user access control to log messages, based on devices, which the log messages are associated with.

Internal caches now use Guava Cache instead of proprietary LRU Table classes.

Metrics Service (system.metrics)

New Metrics service is added to the mPRM, which provides utilities to collect performance data using the Dropwizard Metrics framework.

Thread Pool and Timer (system.mprm-common.tpt.be)

Added info for number of pending jobs.

Added rising of alert when the thread pool congestion is detected.

mPRM System Configuration Manager (system.scm.be)

Fixed a bug which may cause remaining of false sticky alert after temporal lost of connection between two mPRM servers in a clustered setup.

Device Tree Database Service (system.tree.db)

Optimized the DB structure of the device node properties data, which brings significant improvement in write/search performance related to device node settings.

Foundation

Version of the module included in this product: 6.1.0

Certificate Manager (foundation.certificate.be)

Removed support for CRL update from LDAP servers.

Internal caches now use Guava Cache instead of proprietary LRU Table classes.

SSL Message Transport Server (osgidm.message.transport.ssl.be)

Added support for configuring the TLS protocol/version which is supported by the mPRM - via system property mprm.ssltcp.protocol (default TLS).

Fixed infinite loop in the SSL engine, which happened in some rare situations during SSL handshake.

SSL Message Transport Client (osgidm.message.transport.ssl.client)

dded support for configuring the TLS protocol/version which is supported by the mPRM - via system property mprm.ssltcp.protocol (default SSL).

Bug-fix related to hostname verification checks.

WebSocket/SSL Message Transport Client (osgidm.message.transport.wsocket.ssl.client)

Support for configurable CONNECT_TIMEOUT and SO_TIMEOUT parameters of the connections.

LDAP DB Connector is removed from the mPRM, as it was not longer used by any mPRM DB service.

Generic Device Management

Version of the module included in this product: 6.1.0

Device Management / Control Units

Node.countDevices(...) functionality added in the java admin APIs.

ControlUnitActionPreprocessor functionlity support added (backend APIs).

Added new system context methods to Control Unit Providers - loadAllCUInfo(), getControlUnitStates() (backend APIs).

Node properties default values via system properties support added.

Added support for Node Properties filter plugin, i.e. fast device searching on node properties (disabled by default).

Internal caches now use Guava Cache instead of proprietary LRU Table classes.

Performance improvements in RemoteCUAdmin API functionality.

Improved performance of generic storage of Control Units:
  • removed pool of cu states that was causing synchronization delays;
  • added utilization of db batches updates/inserts.

New DB Structure of Node Properties - made more effective.

Fixed synchronization in multi-host enumerating of devices.

A number of fixes/improvements in the cu2java libraries.

Fixed inter-cluster redirection mechanism to prevent potential cycling between cluster nodes.

Cluster load balancing - improved handling the connecting of device to a new responsible host: lightened processing and internal events made asynchronous.

Bug fixes in the Tree Nodes caching.

A number of fixes/improvements in generic db storage of Control Units.

Bug fixes in searching Control Units stored in the generic db storage:
  • Fixed sql injection vulnerability;
  • Fixes in logical OR-statements;
  • Fixed possible duplicate registration of general CU db storage filter plugins.

Generic Device Searching / Search Engine

Search Engine Support added for super CU type Filter Plugins handling all CU type extensions.

Search Engine supports Filter Plugins that do not load Control Unit States.

Added detection if supplied filter is naturally in DNF and skipping minimization.

DNF minimization algorithm changed.

Predicts if DNF minimization would take excessively long time and throws error immediately.

Added property to fail if filter plugins cannot be used: gdm.search.disable.full.iteration.searches.

Fix in CUResultElement serialization (Filter Plugin APIs).

Fix in DNF minimization in extending the buffers.

Fix NPE when searching child control units, which in turn report no parents.

Fix NPE on specific Set-operations with rgiht-hand operation "having child" combined with disk-writes for large results.

Fixed problem with two ON-conditions on the root level of the filter.

Fix findComponents in cluster for comp types having 2 or more device types.

Other minor fixes.

GDM Devices Rest APIs

Added generic search for devices and components.

A number of fixes/improvements in the GDM Devices Rest APIs.

State Variables History

Added Java API method for retrieving history for multiple devices/components/state variables.

A number of fixes/improvements in State Variables History.

State Variables Statistics

A number of fixes improvements in State Variables Statistics.

Rule Engine

Added support for retrying Rules.

Added java API methods:
  • new method getUser() to Rule interface;
  • new disable() method with boolean cancelRuleTasks argument to the Rule interface;
  • method for creating Scope with two filter criteria - standard device filter and custom groovy filtering.

Fixed device rule status when exce items states are changed by the cancel listeners.

Fixed: executionCanceled for task item was called only on one cluster host.

Prevented problems with duplicate enabling of Rules.

Always bind 'event' and 'target' in groovy script even if they are null.

Fixed not considering device filter when scope is a concrete device path.

Improved searching of Rules by ID, name, description, state, state-description, script.

Added groovy script timeouts to prevent cycling scripts block the System.

Restrict Groovy scripts to not use Java classes(or methods) that could block or hack PRM.

Ordering the listing of exec statuses from latest to the first.

A number of other fixes performance improvements in the Rule Engine implementation.

GDM Script Service API

Added ControlUnit listSubControlUnits(childType, gdmFilter) method.

Minor fixes.

Control Unit Tracker

Internal caches now use Guava Cache instead of proprietary LRU Table classes.

M2M Device Groups

Added listing components with specified Control Unit type.

Added support for general group listener.

Added support for access control permissions.

A number of minor fixes and improvements.

Generic OSGi Device Management

Version of the module included in this product: 6.0.0

Generic OSGi DM Java API (genericosgi.dm.cu.api)

Optimized cu2java APIs via RAC by reducing the number of remote calls to the backend.

Execution Environment Manager (genericosgi.ee.be)

Added option for zipped descriptor info.

Added support for import of .eei - preprocessed EEs, thus reducing the size of the EE files significantly.

OSGi Bundles (genericosgi.sr.bundles.be)

Added support for additional catalog properties, obtained from the bundle manifest file.

OSGi Device Management UI Plugin (osgidm.core.ui)

Added backup files download dialog.

OSGi Device Management

Version of the module included in this product: 6.1.0

Device Inventory API (m2m.di.*)

Added listFunctionalItemStates method.

Added optional (disabled by default) support for fine-grained user access control to FI objects kept in the mPRM.

A number of performance improvements.

A number of bug-fixes.

mPRM M2M REST API (m2m.rest.api)

Changed the REST documentation to include gateway ID in URI.

mPRM M2M REST Remote Events (m2m.rest.re.be)

Added authorization parameter.

A number of bug-fixes.

mPRM Backup and Restore

Added BackupFilesSync on connection restore.

Number of bug-fixes and improvements.

OSGi Device Client Control Units Provider (osgidm.clientcu.be)

Fixed handling of some errors - more specifically some errors on processing control unit and state variable events are returned to device in order let it know there are not processed correctly to possibly provoke resend or full sync on next session.

Align isDeviceReadyToExecute with the Core-OSGi Interpretation Group (prevent double executions on concurrent task launch and connection establishment).

Fixed some issues regarding mixing abstract and non-abstract types.

Fixed bug in clientcu db, make use of transactional storage.

Fixed some issues with synchronization of multiple mPRM hosts when mPRM runs as a cluster.

OSGi Device Client Authorization Verifier (osgidm.core.auth.verifier)

Added support for configuring username/password as device node properties.

Added support for configuring of username/password on the ROOT group node - for devices which are not registered.

FIM Control Unit Agent (osgidm.fim.cu.agent)

Added support for custom provided timestamp of the FI events (i.e. when the edge device itself provides timestamp of the event).

Updated to the latest changes & extensions concerning FIM and Device Access modules in mBS.

Performance optimizations

Fixed embedded enum conversion.

Fixed array operation input arguments handling.

Fixed problem in invoke actions with array arguments.

Provisioning MS (osgidm.provisioning.ms)

Added support for externally configured local hosts and port for http/https provisioning transports as well as for message transports.

Added support for overwriting http(s) ports. For instance if there is a load balancer changing the ports.

TR-069 OSGi Device Management

Version of the module included in this product: 6.1.0

OSGi/TR-069 Device Management Java API (tr069dm.osgi.cu.api)

Optimized cu2java libs via RAC by reducing the number of remote calls to backend.

TR069 OSGi Control Units Definition (tr069dm.osgi.cumtp-resource)

Time state variable of the log CU is made of type long.

Removed HDM CU Plugin (tr069.osgi.hdm.be).

TR-069 Device Management

Version of the module included in this product: 6.1.0

Auto Task Manager (tr069dm.autotask.be)

Internal caches now use Guava Cache instead of proprietary LRU Table classes.

ACS Core Backend API (tr069dm.core.be.api)

OpResultStruct.FaultCode made subclass of Struct.

ACS Core Backend Utilities (tr069dm.core.be.util)

Connect for offline action support and declarative operation only support is made asynchronous.

TR-069 ACS Database (tr069dm.db)

Internal caches now use Guava Cache instead of proprietary LRU Table classes.

Fixed bug with CPE Info cache.

TR-069 Device Management (tr069dm.dm.be)

Fixed device Synchronize action issue - when called on offline device offlineInterpretationMode was not reset on fail - so the operation was not executed on following connects

Fixed filter plugin searches on empty or null values.

TR-69 Device Management Java API (tr069dm.dm.cu.api)

Optimized cu2java libs via RAC by reducing the number of remote calls to backend.

SMM CU Plugin (tr069dm.dm.smm.be)

Added support for InternetGatewayDevice. root.

ParameterFilterPlugin.listControlUnits(...) is fixed to use SearchContext and loadBalanceRestriction.

UUID Generator version fixed - Default mode is made 3 (as it is by TR-069 specification). The backward compatibility mode (old behavior) could be achieved by setting system property: mprm.tr069.smm.uuid.version=5 .

ACS Core (tr069dm.tr069.be)

Fixed issue with multiple keep alive per session (resulting in OutOfMemory).

More accurate maintaining of keep alive timeout.

Added optimization of keep alive sending (no synchronization).

Improved thread handling.

Fixed issue with CWMP 1-2 meta data used instead of CWMP 1-3.

TR-106 Support (tr069dm.tr106.be)

LRU cache replaced with Guava cache.

Force pending optimizations.

Tree2CU (tr069dm.tree2cu.be)

LRU cache replaced with Guava cache.

Force pending optimizations.

Mobile Device Management

Version of the module included in this product: 6.1.0

Removed support for Application Management Object defined by the OSGi Mobile specification, as it is not longer supported by the mBS as well.

J2EE Integration

The J2EE Integration Package is entirely removed from the mPRM distribution and will not longer be supported.

Management Console (MC)

Version of the module included in this product: 6.1.0

Management Console Common

Rebranding and redesign to fit the official company style.

Migration to Eclipse Remote Application Platform 3.1.2, providing latest browsers support for the web version.

Session cleanup improved.

Generic Device Management UI Plugin (gdm.cu.ui)

Make devices table contents exportable.

Management Console Rules UI Plugin (gdm.rules.core.ui)

Added pause action to rules.

Added rule retry.

Added user column in rules table.

Removed involved/successes/warnings/errors count columns from rules table as these statistics are too heavy.

Management Console Login Infrastructure (system.rac.login.ui)

Added optional "do not redirect" parameter for RAC connections.

Management Console System Configuration UI Plugin (system.scm.ui)

Added failover mechanism for remote debug connections.

Added change instances count dialog for BICS.

Management Console Statistics UI Plugin (system.statistics.ui)

Fixed issues with statistics when used from Web Admin with multiple sessions.

Management Console User Management UI Plugin (um.user.ui)

Allow non-user manager users to manage the users/groups for which they have rights.

User Management

Version of the module included in this product: 6.1.0

Added multi-tenancy support.

Added direct access cache to deal with the access permissions calls.

Optimized access permissions calls for parametric groups - general parametric groups cache usage changed to use directly the prefix.

Some database improvements and fixes (added a foreign key and DB index).

Software Repository

Version of the module included in this product: 6.1.0

Add PostgreSQL support.

New methods for choosing Client Bundle against version and capabilities.

Changed internal caches to use Guava Cache instead of LRU Table classes.

Optimize RAC communication.

Optimize cache for deliverables.

Improvements and fixes of minor DB issues.

Fixed to support update of Native Packages.

Service Application Management

Version of the module included in this product: 6.1.0

Changed application server to use asynchronous requests.

Changed internal caches to use Guava Cache instead of LRU Table classes.

Change to keep application Control Unit after unpublish / publish bundle.

Fixed problem with install application by version.

Fixed connection problems between gateway and back-end in ssm.application.comm.msg.agent.jar .

Web Service API

Version of the module included in this product: 6.1.0

Changed to use new version of the CXF library v.3.1.11 and new Jackson library version 2.8.9.

Fixed to support JSON format with error 401 response.

Fixed error in parsing of JSON arrays.

Fixed problems with REST calls of Control Unit actions with complex parameters (inner Maps).