A look into Atomic Scope 3.0 – Part 1

I was really excited when BizTalk360 announced Atomic Scope product, In October 2017, at Integrate USA Event, as their solution for business activity monitoring (BAM) for integration solutions.

Now, a little over a year has passed since the announcement. I decided to explore the third version of Atomic Scope which has matured with a lot of newly added features since the first release.

This blog post will be the first part of two, I will be exploring some of these features in Atomic Scope, and I will also be looking for possible new features, and enhancements.

BizTalk Server BAM

BizTalk server ships with a BAM engine, it is a very powerful, and elegantly designed business activity monitoring engine.

In BizTalk BAM, the BizTalk solution is completely loosely coupled from BAM tracking artifacts. It can also provide deep analysis using measures and dimensions, using a configuration-based tool-set without coding or having to deal with Multidimensional Expressions (MDX), and Reporting queries. Impressively, all the underlying reporting SQL analysis structures are created dynamically. Moreover, interactive tabular reports and charts are rendered in the BAM portal effortlessly!

It is also worth noting that you can also leverage BAM for WCF services, and WF by specifying loosely coupled interceptor XML configuration files to capture the required data, without the need to amend your code with BAM instrumentation code. For any other .NET component, you can still leverage BAM for tracking purposes using BAM API. BAM was built for tracking on-premises .NET systems.

Regarding notifications, BAM alerts are confined to e-mail and file creation, the latter option can be used to trigger another automated process in BizTalk Server, or any other system that could be triggered by file creation.

For the longest time, there had been a belief with some certainty within the BizTalk community, that Microsoft product team will not be revamping BizTalk BAM any time soon, especially for the outdated user interface (UI) of its portal and the lack of contemporary features to keep up with new technical and business needs.

For technical geeks, BAM UI is overshadowed by its magnificent underlying design model, but, when it comes to the business users, the UI simply looks outdated and BAM with all its grace is bypassed by business stakeholders.

I strongly recommend reading Pro BAM in BizTalk Server 2009, if you need in-depth knowledge about BizTalk BAM, so you can truly appreciate its out-of-the-box capabilities, and above all, its under-the-hood design.

Atomic Scope Primer

I think BizTalk360 team saw this as an opportunity, to have a full-fledged Business Activity Monitoring product that not only goes beyond on-premises integration systems, but also provides rich, contemporary features, and most importantly, a modernized look & feel to cater for the business users of today.

Atomic Scope Under the hood

Atomic Scope has a dedicated on-premises data store, so it does not rely on BizTalk Server tracking, BAM databases at all. This design decision is aligned with the target to go beyond BizTalk Server & on-premises systems tracking, moreover, relying on BizTalk’s databases schema, or any other system for that matter, is risky and it could also limit the system capabilities.

Tracking in Atomic Scope is accomplished using a BizTalk pipeline component, which intercepts BizTalk messages at different stages of the messaging integration scenario and stores the tracked data into its back-end data store.

For BizTalk orchestrations, you can leverage tracking Helpers by referencing certain Atomic Scope library, where you can set the tracking properties, as well as track business & technical errors within your business process automation flows.

In Logic Apps, you will need to leverage Atomic Scope connectors that are built on top of Azure Functions, and then include these Tracking Actions within your Logic Apps flows. The tracked data in Logic Apps will initially be ingested by the provisioned Event Hub, before a local service will pull this data from Event Hub and store it in the on-premises Atomic Scope data store. It is important to note that you initially need to provision all these Azure artifacts.

Moreover, custom applications could also leverage Atomic Scope Web APIs for tracking.

All these preceding tracking components: the pipeline component, tracking helpers library, custom connectors, and Web API are what establish the wiring of Atomic Scope definitions to the different integration solution artifacts.

Atomic Scope Artifacts

Before jumping into the features, let’s get acquainted with the main components of the Atomic Scope, and their relationship. The components’ names are very much self-descriptive, as you will see.

Workspace is the highest level, logical construct in Atomic Scope, it could represent a specific environment, or business unit in an organization. It encapsulates the following business-related Atomic Scope artifacts.

You start by defining a Business Process (1), which is a container that groups a set of relevant Business Transactions (2).

Stages (3) are milestones within a given Business Transaction, these could be business stages reflected as steps within the workflow, or when a message reaches a certain pre-processing, or post-processing stage at downstream systems.

It is at the Stage level, where you can define Properties (4) based on message payload content, or context. You can also define global properties that are common across different business processes.

Properties can be defined using XPATH, JSONPath, BizTalk Context, or Constant. Moreover, regex expression was added in Atomic Scope version 3.0, this is a powerful way to be able to match and only extract the required value from within a given property.

Generally, as with all monitoring tools, you should be selective when choosing the set of properties you want to be tracked and searched for.

Sample Solution

In this post, I will be using the Sample BizTalk solution AtomicScope.Samples which ships with Atomic Scope, and can be found in the installation path: “%ProgramFiles(x86)%\Kovai Ltd\AtomicScope\SDK\Samples\

The sample solution also includes a JSON configurations file that imports all the sample business process configurations for that solution into Atomic Scope portal.

The sample solution is actually an excellent reference for starting to learn about Atomic Scope artifacts, capabilities, as it demonstrates different business activity monitoring scenarios.

Without further ado…

This was a very brief introduction to Atomic Scope, more details about the main concepts and configurations can be found in the product online documentation.

Without further ado, let’s jump to some of the interesting features that were introduced in the latest two releases of Atomic Scope, by examining Atomic Scope version 3.0.

Improved Search UI Experience

In addition to autocomplete feature for the defined tracked properties names as you type, Search Tabs were added, so you can inspect multiple search results views.

Further, complex queries for business process transactions can be articulated using the pre-defined tracked properties, along with logical operators, relational operators, and parentheses for setting precedence to prioritize segments of the query.

For each tracked business transaction in the search result, a message graphical flow of the different pre-defined stages can be displayed, and system & business tracked properties can be inspected at each business transaction stage of a business transaction.

Granular Control for Archiving Data

You have fine-grained control over the tracked data archiving, which can be selectively disabled on the business transaction’s stage-level defined within the business process.

This is a useful feature to keep the DB size small, and also if you have sensitive data that you don’t want to persist for longer periods of time, beyond the main tracking period.

It is also worth noting that since Atomic Scope version 2.0, there has been a global data purge settings which will automatically purge old data that fall outside the time window you define.

Tracked Messages Encryption

Message payloads in Atomic Scope data store can now be encrypted using AES 256 bit encryption. Further, the encryption feature can be enabled/disabled globally from within the main application settings.

This provides you with flexibility and control based on your project security requirements to decide whether, or not to have encryption with its inevitable overhead during read/ write operations from Atomic Scope data store.

User Access Policy over Business Processes

This a feature that was introduced in version 2.0, where you can have multiple fine-grained business process-level roles (Owner, User, and Reader). A Domain or Windows user/group can be granted access to a business process with a selected role on a business process.

The Owner role have total control over the selected business process, the User role has the same privileges as the Owner, but without the ability to grant permissions to other users, while the Reader role can just view the business process, but can’t make any changes.

To be continued…

I hope I got you intrigued, so far, to try Atomic Scope yourself. In the second part, I will look into some of the other cool features.