Page 46 - MSDN Magazine, March 2018
P. 46
AZURE SERVICE BUS
Enterprise Data
Integration Patterns with
Azure Service Bus
Stefano Tempesta
In the age of Big Data and machine learning, acquiring and managing information is critical, but doing so can be a com- plex undertaking because data is often more complex than you might realize. When considering how to make your application communicate with other IT systems, an effective design for data exchange is key to success. This article provides an overview and implementation of data integration processes between applica- tions using Azure Service Bus.
Data Integration Design Patterns
Data flows in multiple directions across networks, applications, and volatile or persistent repositories. It may be exchanged record by record or in batches, through systems that talk to each other in real time or via scheduled synchronization jobs. Despite the vari- ety of data integration “journeys,” it’s possible to identify common design patterns for how to address them in an enterprise context, where requirements include high availability, guaranteed delivery and security. Design patterns in software engineering are the most logical and proven sequences of steps to resolve a task. The four most common design patterns for data integration are broadcast, aggregation, bidirectional synchronization and correlation.
In this article, I introduce each of these data integration design patterns and describe their application in the context of Azure Service Bus. An approach to data integration that leverages an enter- prise service bus (ESB) facilitates the implementation of these patterns in a very effective way, by simply defining source and target sys- tems, frequency of communication, and the data format for input and output. Along with the description of each pattern, I include code samples to illustrate communication with Azure Service Bus.
Context and Requirements
I’ll start my journey to data integration by defining the enterprise context. In this case, let’s assume I’m building an e-commerce platform, with the typical requirements for an online catalog and shopping cart, and that I’ll publish my application in Azure. The e-commerce application is part of a larger ecosystem of IT systems, some exposed on a public cloud, some still hosted on a private datacenter. Thus, I’m operating in a truly hybrid context. The data integration requirements include the following capabilities:
1. Transfer product sales information from the e-commerce application to an invoicing system and to social media platforms. 2. Receive product availability information from an enterprise resource planning (ERP) application, and product descrip-
tions from third-party vendor systems.
3. Add location tracking to shipped parcels.
4. Share customer data with partner organizations for
co-marketing activities.
All of these integration requirements can be addressed using the
design patterns mentioned earlier. Let’s take a closer look.
The Broadcast Pattern
For the first capability, I need to extract data concerning product sales from the e-commerce application and transfer it to multiple
This article discusses:
• Data integration design patterns • Publish/Subscribe pattern
• Service Bus Relay
Technologies discussed:
Azure Service Bus
Code download available at:
bit.ly/2s0FWow
40 msdn magazine