ThingWorx Analytics Microservice Architecture Redesign
|
||
Architectural changes introduced in the 8.5 release have reduced the number of microservices necessary to run ThingWorx Analytics. The new architecture provides the same functionality but in a more efficient structure.
Since the 8.1 release, ThingWorx Analytics Server has included a series of nine independent microservices. These microservices grouped analytics services by specific elements of functionality (data, training, scoring, results). When you consider additional components, like ZooKeeper and one or more common Workers, a single installation can contain upwards of a dozen separate Java processes. Each process represents a potential point of entry that requires monitoring, management, and troubleshooting. In addition, several of these microservices handle very similar activities, such as running jobs and retrieving results.
In the redesigned architecture of the 8.5 release, the set of microservices has been simplified to the following:
• Synchronous microservice – Handles stateless processes such as synchronous scoring and querying.
• Asynchronous microservice – Handles all of the job-based processes such as working with data and retrieving results.
Benefits of the Redesign
This consolidation greatly reduces the ThingWorx Analytics cost of ownership, in terms of fewer processes to install, protect, and maintain. This smaller footprint also results in less complicated troubleshooting. And because the services are grouped by synchronous vs. asynchronous processes, additional components like ZooKeeper and common Workers are necessary only when the Asynchronous microservice is deployed. When the Synchronous microservice is deployed alone, those additional components are not installed because synchronous jobs are stateless and do not require job management.
Backwards Compatibility
Despite the new component structure of the ThingWorx Analytics Server, its representation in the ThingWorx Thing model has not changed. A full set of Analytics Things is still created on installation, both for the sake of backwards compatibility, and because it remains an efficient way to group services into logical areas. The APIs available via ThingWorx have not changed. The same payloads and pathways are required to run the services.
ThingWorx Adapter for Analytics Server
The Analytics Gateway of earlier releases has been renamed to better reflect its role in the component structure. It serves as an adapter, routing and adapting APIs between ThingWorx and the Analytics Server. The new name of this component is the ThingWorx Adapter for Analytics Server.
Migration
Migration paths to the new architecture have been tested and confirmed from 8.3.x and 8.4.x versions of ThingWorx Analytics. Migration from versions as early as 8.1 might be successful but have not been tested and are not supported.
|
Analytics Server API Support for SSL Authentication
|
ThingWorx Analytics Server API security has been enhanced by the addition of SSL authentication support. In earlier releases, SSL support was available only for the connection between the Analytics Server and ThingWorx. This new API-level of SSL authentication secures communication between the ThingWorx Adapter for Analytics Server (formerly known as the Analytics Gateway) and the APIs. It also secures internal communication between the APIs themselves. Adding SSL authentication to the API layer also provides administrators with the ability to control access.
The use of the SSL authentication is optional but is enabled by default. It can be disabled during installation.
|
Confidence Models
|
Confidence model functionality has been added to ThingWorx Analytics in this release. Confidence models can be applied to continuous, Boolean, categorical, and ordinal data.
Confidence models are generated from validation data and can be applied either during predictive model training or after model creation. Based on a user-defined confidence level, they can provide information about the accuracy of a predictive score. Multiple confidence models can be generated for the same training model. In addition, a new service has been added to allow retrieval of confidence models from the Validation Thing. For more information about how confidence models are applicable when scoring different types of data, see Confidence Models.
Confidence models are currently available only from ThingWorx Analytics APIs. In a future release, they will be made available in Analytics Builder as well.
|
ThingWorx Analytics Integration with FactoryTalk Analytics DataFlowML
|
In the 8.5 release ThingWorx Analytics can be deployed with DataFlowML version 3.0, part of the Rockwell FactoryTalk Analytics suite of products. This installation completely bypasses both the ThingWorx server and the ThingWorx adapter. All HTTP traffic from within DataFlowML pipelines communicates directly with the Synchronous or Asynchronous microservices. The microservice APIs are protected via SSL and an application key generated during installation. For more information about integration with DataFlowML, see the FactoryTalk Analytics DataFlowML documentation.
|
Enhancement Description
|
Reference #
|
Signals and profiles pagination should start at 5 items instead of 10
List pages for signals and profiles provide less space to display rows of data than list pages for models, datasets, or scoring. To accommodate this difference, the Items Per Page field on the Analytics Builder Settings tab has been replaced by two new fields:
• Model/Datasets Per Page – Indicates the number of rows to display for models, datasets, and scoring. Default value is 10.
• Signals/Profiles Per Page – Indicates the number of rows to display for signals and profiles. Default value is 5.
|
TA-1621
TA-3735
|
ThingWorx Analytics: security improvements
In this release, security was improved by closing several vulnerabilities.
|
TA-2981
|
Spark Upgrade
ThingWorx Analytics Server has been upgraded to use Spark, version 2.3.3.
|
TA-3147
|
Allow installer to import a self-signed SSL certificate automatically
The Analytics Server installer has been enhanced to support automatic import of a self-signed ThingWorx SSL certificate. Previously, when integrating with a ThingWorx server running SSL, the certificate had to be downloaded and imported manually. In this release, new options are available on the ThingWorx Connection Information page of the installer to allow a self-signed SSL certificate to be imported by the installer. However, the process can still be handled manually. For information about either process, see SSL Support for ThingWorx.
|
TA-3186
|
Batch Prescriptive Scoring
Prescriptive scoring, as an asynchronous batch process, has been added to ThingWorx Analytics Server. To access the functionality, navigate to the Prescriptive Thing in ThingWorx Composer and execute a BatchScore job. Use the RetrieveResult service to view the scoring results.
This functionality is not yet available in Analytics Builder.
|
TA–3569
TW-61153
|
Bug Fix Description
|
Reference #
|
Analytics Builder: Updates to learner parameters
Updates have been made to the descriptions of several learner parameters on the Add Learners dialog box.
|
TA-1718
|
Analytics Manager: CreateOrUpdateThingTemplateAndThingForModel and CreateOrUpdateThingTemplateAndThingForModel services fail to execute
When executing the following Analytics Manager services from resource TW.AnalysisServices.ModelManagementServicesAPI, various errors occur and the services fail to execute successfully:
• CreateOrUpdateThingTemplateAndThingForModel
• CreateOrUpdateThingTemplateAndThingForModel
These issues have been resolved so that these services can be used to create and update Things and Thing Templates based on an analytics model.
|
TA-2046
|
Analytics Server: Min and Max parameters ignored during dataset creation
When creating a dataset with user-defined values for the Min and Max metadata parameters, those values are sometimes replaced with calculated Min and Max values. This issue has been resolved so that fixed Min and Max values are honored.
|
TA-2079
|
Analytics Server: Unclear error message when appending data
When a failure occurs while appending data to a dataset, the resulting error is a generic exception message and does not provide enough information to identify the cause of the failure. This issue has been resolved so that the underlying cause of the failure is revealed in the error message.
|
TA-2266
|
Analytics Manager: AnalyticsServerConnector performs slowly in comparison to ThingPredictor
The performance of the AnalyticsServerConnector is slow in comparison to the ThingPredictor analysis provider. When an analysis event is enabled, jobs are handled in an asynchronous process and begin to accumulate faster than the Analytics Workers can process them. To improve performance, the AnalyticsServerConnector has been updated to run jobs in a synchronous process by default. A new runJobAsAsync property has been added to provide the option of handling analysis jobs asynchronously, when desired.
|
TA-2498
|
Analytics Builder: Non-numeric metadata cannot be changed to OpType Continuous
When editing inferred metadata for a dataset, an error occurs if you change the OpType of a column from Informational to Continuous. This issue occurs only when the DataType for the column is Integer and all of the values are the same. This issue has been resolved so that a field with any DataType can be modified to OpType Continuous.
|
TA-3030
|
Analytics Builder: Signals warning message is not displayed for time series data
When a signals job runs on time series data, the feature list displays on the left side of the Signals page in descending order according to their predictive strength. However, signal details cannot be displayed in the right hand panel for time series data. An expected warning message is not displaying with this information. This issue has been resolved so that the appropriate warning message displays when trying to view signal details for time series data.
|
TA-3036
|
Analytics Server Installer: Encryption of passwords and keys fails when Java 7 is present
During installation, passwords and keys are encrypted automatically. One of the installation prerequisites is JDK 8u141 (or for older versions of Analytics Server, JDK 8.x). However, if Java 7 is also installed on the same server, errors occur during Analytics Server installation and the analytics Things are not successfully created in ThingWorx. This issue has been resolved so that Analytics Server can be installed successfully even when Java 7 is present on the server.
|
TA-3271
TA-3667
|
Analytics Server: Worker log files do not display logger levels in messages
Messages displayed in the Worker log file do not indicate their logger levels, for example, ERROR, WARN, or INFO. This issue has been resolved so that logger levels are reported for each message written to the Worker log files.
|
TA-3327
|
Analytics Builder: SSL checkbox removed from the Settings tab
The check box indicating use of a ThingWorx server running SSL is no longer necessary on the Analytics Builder Settings tab. The SSL option is available during Analytics Server installation and the check box on the Builder Settings tab has no purpose and has been removed.
|
TA-3678
|
Analytics Builder: Model results are not graphed when using Boolean data
When a predictive model is created using a Boolean goal and all of the data in the validation set has the same value, the ROC curve and confusion matrix graphs are not successfully displayed. This issue has been resolved so that when these types of results are retrieved, the graphs can be displayed properly.
|
TA-3760
|
Known Issue Description
|
Reference #
|
ThingWorx Analytics Server: Two-at-a-time Signals request does not return MI for all field combinations
When running a request for Signals, and specifying maxAtATime = 2, Mutual Information (MI), in relation to the goal, is not returned for all field combinations as expected. Instead, individual (one-at-a-time) MI scores are returned for all fields and then are filtered down to the top 25% most relevant fields. Two-at-a-time signals are calculated only for those fields. There is currently no way to modify this filtering behavior.
|
TA-729
|
Analytics Manager: An existing simulation event fails if it is triggered after server restart
Analysis agents must be restarted after a ThingWorx server restart. Without restart of the agent, any new simulation jobs will fail to execute.
|
—
|
Analytics Manager: Time window event does not work for non-time series models
When a non-time series model is uploaded using the Analytics Server Connector, and all of the properties, including the key field are mapped, a time window event does not work.
|
AM-1289
|
Analytics Builder: Filtering on list pages does not work as expected
When filtering is applied to a list page with multiple pages (such as the Models list page), the filtered results are not aggregated for display on a single page. Instead, the filtered results remain on their original pages and multiple pages must be clicked through to find all the filtered results.
To improve handling of list page displays, a configurable parameter has been added to set the number of table items that can be displayed per page. A more permanent resolution for the filtering with pagination issue will be provided in a future release.
|
TA-1596
TA-1618
TA-1928
|
ThingWorx Analytics Server: Some datasets with a large number of columns fail to upload
There are currently some limitations on the size and number of columns a dataset can contain. These limitations depend on the mix of data types your data includes. For specific information, see the Data section of Prepare Data and Metadata.
When trying to upload a dataset with a large number of columns, if the upload fails and an error message is generated, try the following workarounds:
• Where possible, use optimal data types, for example, convert INTEGER data to STRING and use DOUBLE for numeric data.
• Reduce the number of columns.
|
TA-2599
|
ThingWorx Analytics Server: When dataset or metadata field names begin with a number, server queries fail
When a field that begins with a number is included in a dataset or in metadata, most Analytics Server jobs can run successfully, such as training a model, running or scoring. However, when a server query is executed, such as a BinnedDistribution, the query fails. As a work around, avoid using field names that begin with a number.
This issue will be resolved in a future release so that field names can begin with numbers.
|
TA-2795
TA-2799
|
ThingWatcher
|
ThingWatcher was discontinued as a standalone SDK in 8.3. However, ThingWatcher functionality is available in the Anomaly Detection features native to the ThingWorx platform. For more information, see Anomaly Detection.
|
ThingPredictor
|
ThingPredictor software media is no longer available for download as of 8.3. However, support will continue for 8.x users until the next major release. To replace ThingPredictor capabilities, an improved set of predictive services is being introduced in 8.3. For more information, see How Predictive Scoring Using the Analytics Server Connector Works.
|
DataConnect / Data Analytics Definition
|
DataConnect and the Data Analytics Definition are not available as of 8.3. Replacement functionality will be introduced in a future release.
|