software architecture & design patterns for ms crm developers
DESCRIPTION
Presentation from my session at extreme CRM 2013 .TRANSCRIPT
Connect + Learn = Grow
Software Architecture &
Design Patterns for Developers
Sebastian WaksmundzkieDataLabs Ltd.www.edatalabs.net
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
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
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
Connect + Learn = Grow
Patterns
• Architectural pattern is a concept i.e. ETL
• Design Patterns is a reusable solution i.e. Batch ETL
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
Connect + Learn = Grow
Let’s move on
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
Connect + Learn = Grow
Master data management(Master Data Replication)
Connect + Learn = Grow
Master data management(Master Data Replication)
• Candidate architectures– Database synchronization – SSIS– GEO cluster– File Exchange– Send Email (Pigeons)– Azure Service Bus
Connect + Learn = Grow
Master data management(Master Data Replication)
• Proposed solution– Azure Service Bus with Pub Sub
Connect + Learn = Grow
Master data management(Master Data Replication) pub /sub
Filtering
Connect + Learn = Grow
Master data management(Master Data Replication)
DEMO
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.
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
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
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
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
Connect + Learn = Grow
Data Integration(ETL Data Quality)
• Proposed solution SQL 2012 DQS together with SSIS
Connect + Learn = Grow
Data Integration(ETL Data Quality)
DEMO
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
Connect + Learn = Grow
Data Integration(Connected systems ESB )
• Candidate architectures– BizTalk– Export Import File– Extended Service Bus
Connect + Learn = Grow
Data Integration(Connected systems ESB )
• Proposed solution Extended Service Bus
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"
Connect + Learn = Grow
Data Integration(Connected systems ESB)
DEMO
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
Connect + Learn = Grow
Complex Event Processing
• Candidate architectures– BizTalk– StreamInsight–Message based Event Processing
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
Connect + Learn = Grow
Long running processes
• Proposed solution Windows Server AppFabric Workflows
Connect + Learn = Grow
Long running processes
• Candidate architectures–Workflow inside CRM– BizTalk Orchestration–Windows Appfabric Workflow
Connect + Learn = Grow
Long running processes
What are Workflow Services?
WCF Service
WF Workflow
Operation
Operation
WCF endpoint
WCF endpoint
ExternalService
ExternalService
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.
Connect + Learn = Grow
Long running processes(workflows)
DEMO
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
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
Connect + Learn = Grow
Mashups
• Candidate architectures– Load all transactions to MS CRM Custom
entity –More Licenses for transactional system – UI Mashup
Connect + Learn = Grow
Mashups
• Proposed solution UI Mashup
Connect + Learn = Grow
Thank you
Connect + Learn = Grow
Sebastian WaksmundzkiEDataLabs Ltd
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!
Connect + Learn = Grow
Session Evaluation Survey online:http://www.extremecrm.com/Pages/2013RomeSurvey.aspx