This topic describes the background concept of Micro Focus Connect.
Artifact synchronization engine
Micro Focus Connect is a cross product artifact synchronization engine. It can create, update and delete artifacts in a product based on equivalent changes made in another product. Synchronizations are executed between a Master, which is a Micro Focus product, and a Target, which is any product in the market, including those Micro Focus provides. Synchronizations may be executed between Micro Focus ALM/QC, Micro Focus Octane, JIRA, Azure DevOps, Rally, Version One, etc. Only Micro Focus products may be selected as Master.
The choice of Master or Target does not represent the direction of synchronization. Micro Focus Connect can run unidirectional or bi-directional synchronizations that can be set/controlled at the connection level, the individual artifact type level, and the field level. The only other noteworthy aspect of the Master data source is that, for any given item, if a field value being synchronized deadlocks, that is, a change was made to both source and target at the same moment, then the Master value is chosen to break the deadlock.
Micro Focus Connect supports a hub and spoke model. The hub is the core product-agnostic service. Each product is represented by a connector, a spoke. As of December 2020, Micro Focus Connect supports the following set of connectors (products).
|Atlassian Confluence||Micro Focus AccuWork||
Micro Focus Silk Central (test manager)
|Atlassian Jira||Micro Focus ALM Octane||Micro Focus StarTeam|
|Azure Dev Ops (formerly TFS)||Micro Focus ALM/QC||Micro Focus Solutions Business Manager|
|Broadcom Rally (formerly CA Agile)||Micro Focus Dimensions CM||Microsoft Excel|
Micro Focus Dimensions RM
|Micro Focus PPM (project and portfolio management)||ServiceNow|
A Micro Focus Connect connection represents a synchronization between two data sources. Each data source represents an end point instance of a product. The data source comprises types, types comprise fields and relationships across types comprise links.
|Element type||Consists of|
|Data source (end point instance of a product)||Types|
|Relationships across Types||Links|
When synchronizing object hierarchies across products, a connection can spread across multiple types. This also includes relationships between objects and their parents. A connection can span multiple projects on either side. For example, one project can spread from one data source to one or more projects on another data source, in either or both directions.
The more complex mappings present a challenge in determining how to guide the appropriate artifact subsets into their corresponding projects, which can be done using calculated values. The other challenge when working with large data sets on any given product, is to determine how to select the appropriate subsets to synchronize. This can be done using synchronization criteria.
Type maps are the most convenient, typically the most logical, and satisfy equivalency. A type in one data source synchronizes to an equivalent type in the other. For example, Micro Focus ALM Octane Defects synchronize with Azure DevOps Bugs. Micro Focus Connect does not dictate these type mappings. A user with a complex use case can choose to map completely different types across products, as long as the resultant data satisfies the product's workflow, integrity, and correctness.
Maintain the connection
Connections are scheduled to run with a default interval frequency set to one minute. The synchronization frequency is the maximum amount of time that will elapse between successive connection runs. If a connection is configured to run every minute, but each iteration takes 5 minutes to complete, the next iteration will start immediately after the previous one ended. If the connection took 20 seconds to run an iteration, the next iteration starts 40 seconds later. It is unnecessary for connections to be running all the time. Connections keep track of where they left off via the recorded source and target watermarks. The next time a connection starts, it begins where it left off, and synchronizes over everything that has changed since that point in time.
There is a benefit to not run connections continuously without pause between each. Multiple connections running simultaneously will challenge the balance for resources on memory, processor, and network bandwidth. A connection that constantly runs queries against the source and target data sources/types without any required synchronization consumes unnecessary resources and effectively starves other connections.
Tip: Set synchronization frequencies on connections that reflect the real amount of data being produced in the data sources, as well as the average amount of time expected to synchronize these asset changes across the connections.
Because connections run in parallel on allocated web server threads, the "sleep" time between iterations on any given connection increases the processing power of all other connections.
Synchronization run actions
When a given synchronization runs, it produces an audit of successes or failures. The audit information can be reviewed in almost real time in the Micro Focus Connect UI, or it can be extracted into denormalized flat file representations by using the purge utility. The resultant output should be backed up to an audit database on any standard SQL engine (Microsoft Access, SQL Server, Oracle), for latter review, investigation, or sorting, per connection clean-up. You should purge the UI audit on a regular timely interval. Failure to do this will create a disproportionately large ‘AppData/data' folder that retains all unpurged audit information in the Micro Focus Connect service memory.
For any given type mapped on a connection, the set of ‘required’ fields for that type display in the UI with red bold letters. If these fields are unintentionally or deliberately left out of the mapping, an error message will indicate the possibility that the synchronization will fail if an artifact is being created on the type without the required field. This warning can be ignored if the synchronization direction is unidirectional with data flowing out from the type. In this case, none of the ‘required’ fields of the type must appear in the mapping, and the warning message can be safely ignored.