One of the main strengths of the Dynamics 365 platform is its capability to easily integrate with other systems. Integration is an appealing feature that makes the platform a true enterprise contender. Most Dynamics CRM and Dynamics 365 implementations I have worked on in the public sector require a degree of integration with another system. Portals, batch processing, and data synchronization are some of the typical integration examples.
With integration comes challenges. Some systems are only available on-premise, whereas others are exposed to the public but have strict security restrictions.
In this chapter we will look at a few design patterns that address different scenarios. We will target Dynamics 365 online however, most patterns are also applicable to Dynamics 365 on-premise or IFD instances.
We will start with the client/server pattern where a fat client application (.NET or Java) connects to Dynamics 365 as its backend, as depicted in the following diagram. The arrows represent application dependencies:
We will also look at a message queuing pattern using the Azure Service Bus queues. The following figure shows how data is written to the Azure Service Bus and how on-premise listeners consume messages from the Azure Service Bus and broadcast them to other local systems. This pattern can also work with on-premise Dynamics 365 deployments:
Next, we will look at running a scheduled task that calls a custom built façade to our Dynamic 365 endpoints. The MVC application in the following diagram represents a façade to Dynamics 365, which is consumed by the Azure Scheduler:
We will also cover some third-party tools:
- Scribe (https://www.scribesoft.com), which uses a controller/agent pattern. The following diagram shows a Scribe Agent connecting to Dynamics 365 online to retrieve data and push it into an on-premise application. The Scribe tool is described further in Running no code scheduled synchronization using Scribe:
- KingswaySoft SSIS Dynamics CRM extensions (http://www.kingswaysoft.com/products/ssis-integration-toolkit-for-microsoft-dynamics-365) leverage the power of Sql Server Integration Services (SSIS). The following is a diagram that highlights how an SSIS package using KingswaySoft hosted on-premise extracts data from an on-premise application and pushes it to Dynamics 365 online:
Finally, we will look at how Dynamics 365 can be the consumer and reach external resources. This image shows Dynamics 365 accessing a public resource: