software architecture & design patterns for ms crm developers

40
Connect + Learn = Grow Software Architecture & Design Patterns for Developers Sebastian Waksmundzki eDataLabs Ltd. www.edatalabs.net

Upload: sebedatalabs

Post on 28-Nov-2014

2.387 views

Category:

Technology


5 download

DESCRIPTION

Presentation from my session at extreme CRM 2013 .

TRANSCRIPT

Page 1: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Software Architecture &

Design Patterns for Developers

Sebastian WaksmundzkieDataLabs Ltd.www.edatalabs.net

Page 2: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Hello World

• Senior Dynamics Architect• Over 12 years experience• I still love technology and code • MS CRM (since 1.2 ), SharePoint, ERP(s)

• Social • Blog www.mindthecloud.net• Twitter @qmiswax

Page 3: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Agenda

• Architecture – Architectural patterns and styles

• Design patterns–Master Data Management – Data Quality– Connected systems– Complex Event Processing– Long running processes –Mashups

Page 4: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Patterns

From the Yahoo Design Pattern Library:• Patterns are optimal solutions to common

problems. As common problems are tossed around a community and are resolved, common solutions often spontaneously emerge. Eventually, the best of these rise above the din and self-identify and become refined until they reach the status of a Design Pattern

Page 5: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Patterns

• Architectural pattern is a concept i.e. ETL

• Design Patterns is a reusable solution i.e. Batch ETL

Page 6: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Domain Area Architecture Pattern Name Design Patterns Solution Patterns

Data Integration • ETL • Change Data Capture• Near Real-Time ETL• Batch ETL• Data Discovery

• Error handling• Job scheduling• Data validation• Slowly Changing

Dimensions Load

• MFT

• EAI/ESB• Publish/subscribe• Request/reply• Message Exchange Patterns

• One-Way• Synchronous

Request/Response• Basic Call-back• Claim Check

Data Architecture • Transaction Data Stores (TDS/OLTP)• Master Data Store• Operational Data Store• Data Mart• Data Warehouse

• Custom Applications Databases

• Packaged Application Databases

Business Intelligence • Transactional Reporting• Operational Reporting• Analytical Reporting

• Transactional Reporting Data Access

• Operational Reporting Data Access

• Analytical Reporting Data Access

• Analytical Dashboard Data Access

• Operational Dashboard Data Access

• Data Mining

• Real-Time Dashboards• In-Memory Analytics• Statistical Analysis• Predictive analytics

Master data management • Master Data Hub • Master Data Replication• Master Data Services• Master Data Synchronization

Data Modelling • Dimensional Data Modelling• E-R Data Modelling

• Modelling Standards• Naming Conventions

Page 7: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Let’s move on

Page 8: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Master data management - domain(Master Data Replication) – design pattern

• Business ProblemCompany XYZ Corp: Headquarter + 2 remote locations , all have separate MS CRM instances (one online)

• Key requirements• The central master data be synchronized to all instances so that each instance has

access to the latest version of the core information.• Solution has to allow :

– Secure and reliable cross-boundary communication– Scalability

• We need to synchronise:– Reference data, countries, currency codes, products –phase 1– Transactional data, which describes or results from an action by or with the

business.• Only Relevant data should be synchronised • Some data should be published on a portal for customers

Page 9: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Master data management(Master Data Replication)

Page 10: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Master data management(Master Data Replication)

• Candidate architectures– Database synchronization – SSIS– GEO cluster– File Exchange– Send Email (Pigeons)– Azure Service Bus

Page 11: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Master data management(Master Data Replication)

• Proposed solution– Azure Service Bus with Pub Sub

Page 12: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Master data management(Master Data Replication) pub /sub

Filtering

Page 13: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Master data management(Master Data Replication)

DEMO

Page 14: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Master data management(Master Data Replication)

• Proposed solution benefits– Scalability – (One)(Many)-to-many communication.– Secure and reliable cross-boundary

communication.– Improved security.

Page 15: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Master data management(Master Data Replication)

• RU 12 Updates New in Microsoft Dynamics CRM 2011 Update Rollup 12 is a property bag of extra information added to each brokered message Properties.The property bag, available with persistent queue and topic contract endpoints, contains the following information.– Organization Url– Calling user ID– Initiating user ID– Entity logical name– Request name

Page 16: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Data Integration(ETL Data Quality)

• Candidate architectures– 3rd party tools (they are generic)–Manual cleansing process– Build custom .net program– SQL 2012 DQS with SSIS

Page 17: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

CityAddress Line

17

Data DQS

AccountID

HomeTeam

Team Type

Revenue Type Sales

Home Arena

Address Line City State Zip

A124324Boston Celtics Basketball

Food & Beverages 655 TD Garden 100 Legends Way Boston MA 2114

7676862New York Yankees Baseball Music 389 Yankee Stadium

East 161st Street & River Avenue NY NY

4934235Seattle Mariners Baseball Music 443 Safeco Field 1516 First Avenue S Seattle WA 98134

AccountID

A124324

7676862

4934235

Team Type

Basketball

Baseball

MLB

Address Line City State Zip

100 Legends Way Boston MA 2114East 161st Street & River Avenue NY NY

1516 First Avenue S Seattle WA 98134

Full Address

Account ID Team Type State Zip

- Composite Domain

Rule Validation

Synonyms Detection

Reference Data

External address validation provider Team TypeValuesStructure

Data Quality Knowledge Base

Page 18: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Data Integration(ETL Data Quality)

• Proposed solution benefits – Toolset already with SQL 2012– Corporate Knowledge Base– Fast, reliable – Improves DQ on different dimensions• Completeness • Accuracy• Consistency• Uniqueness

Page 19: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Data Integration(ETL Data Quality)

• Proposed solution SQL 2012 DQS together with SSIS

Page 20: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Data Integration(ETL Data Quality)

DEMO

Page 21: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Data Integration(Connected systems ESB )

• Business ProblemXYZ Enterprise has CRM online used by sales team. Invoices generated should promptly appear in ERP system as well as on SharePoint site.

• Key requirements – Scalable secure communication–Multiple systems

Page 22: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Data Integration(Connected systems ESB )

• Candidate architectures– BizTalk– Export Import File– Extended Service Bus

Page 23: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Data Integration(Connected systems ESB )

• Proposed solution Extended Service Bus

Page 24: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Data Integration(Connected systems ESB )

Azure AppFabric vs. Server AppFabric

Windows Azure AppFabric as a brand name doesn't exist anymore. It is now called Windows Azure "Client Libraries for .NET"

Page 25: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Data Integration(Connected systems ESB)

DEMO

Page 26: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Complex Event Processing

• Business Problem XYZ has network of websites, which sell goods, they want identify the best customers in near real time

• Key requirements – Identify best customers in near real time– Information about customers should be

in MS CRM

Page 27: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Complex Event Processing

• Candidate architectures– BizTalk– StreamInsight–Message based Event Processing

Page 28: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Long running processes

• Business Problem– XYZ has MS CRM which stores Golden

Copy records for financial instruments, GC record is “combined” from at least 3 sources

• Key requirements –Multiple different sources– Processing and GC generation takes

time

Page 29: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Long running processes

• Proposed solution Windows Server AppFabric Workflows

Page 30: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Long running processes

• Candidate architectures–Workflow inside CRM– BizTalk Orchestration–Windows Appfabric Workflow

Page 31: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Long running processes

What are Workflow Services?

WCF Service

WF Workflow

Operation

Operation

WCF endpoint

WCF endpoint

ExternalService

ExternalService

Page 32: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Long running processes

• Proposed solution benefits– Fully declarative XAML modelling in WF 4

(workflows & activities)– Testable solution– Elastic scale – Improved performance, availability and reliability– A complete hosting environment for long running

workflows, including persistence.

Page 33: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Long running processes(workflows)

DEMO

Page 34: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Long running processesWorkflow Manager

Workflow Manager 1.0 is a new server which introduces new capabilities for authoring, hosting and managing workflows. These workflows will run at high scale and density, and will support execution in a multi-tenant environment.

In addition, Workflow Manager 1.0 is used by SharePoint 2013

Page 35: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

UI Mashups

• Business Problem– Transactional data not visible in MS CRM

• Key requirements – 10 million historical transactions visible

in MS CRM– Transactional system produces up to

100,000 transactions per day

Page 36: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Mashups

• Candidate architectures– Load all transactions to MS CRM Custom

entity –More Licenses for transactional system – UI Mashup

Page 37: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Mashups

• Proposed solution UI Mashup

Page 38: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Thank you

Page 39: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Sebastian WaksmundzkiEDataLabs Ltd

[email protected]

Thank You to all of our Sponsors and thank YOU for attending

eXtremeCRM 2013 Rome!

Please remember to fill out your session evaluation survey online!The link to the survey was emailed to you, or go to:

http://www.extremecrm.com/Pages/2013RomeSurvey.aspxComplete prior to the closing session to be included in today’s

drawing!

Page 40: Software architecture & design patterns for MS CRM  Developers

Connect + Learn = Grow

Session Evaluation Survey online:http://www.extremecrm.com/Pages/2013RomeSurvey.aspx