Software architecture & design patterns for MS CRM Developers


Published on

Presentation from my session at extreme CRM 2013 .

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • An architectural pattern is a concept that solves and cohesive elements of a software architecture. Countless different architectures may implement the same pattern and share the related characteristics ie. Etl we know when we have bunch of data we should extract transform and load Design pattern design pattern is a general reusable solution to a commonly occurring problem within a given context i.E Batch ETL
  • They don’t have corporate WAN, Differences in regional, for example European Union (EU), or national legislation can result in variations in requirements for securing data or maintaining data privacy across the different regions or countries
  • In the published/sub model, subscribers typically receive only a subset of the total messages published. The process of selecting messages for reception and processing is called filtering. There are two common forms of filtering: topic-based and content-based.In a topic-based system, messages are published to "topics" or named logical channels. Subscribers in a topic-based system will receive all messages published to the topics to which they subscribe, and all subscribers to a topic will receive the same messages. The publisher is responsible for defining the classes of messages to which subscribers can subscribe.In a content-based system, messages are only delivered to a subscriber if the attributes or content of those messages match constraints defined by the subscriber. The subscriber is responsible for classifying the messages.
  • Show data quality and BDD
  • You can think of a Workflow Service as a WCF SOAP Service that implements its service operations using workflow activities instead of code. Like WCF SOAP Services, Workflow Services can also compose calls to other external services as a part of their operation implementation.Workflow Services are defined in XAML files with the XAMLX extension and are hosted by a Workflow Service Host within IIS and AppFabric, in a way that is similar to the ServiceHost that runs SVC files for WCF SOAP Services in IIS/AppFabric.The XAMLX files are fully declarative XAML- they have no inline code and depend on types present in the bin directory of the application or the GAC for their operation. They are configured via a web.config in the same way that WCF SOAP Services are.
  • Huge scaleDynamic programDomain SpecificIntegrated MessagingPub/Sub EventingMulti-tenant
  • One sourceNorriq
  • Software architecture & design patterns for MS CRM Developers

    1. 1. Software Architecture & Design Patterns for Developers Sebastian Waksmundzki eDataLabs Ltd. www.edatalabs.netConnect + Learn = Grow
    2. 2. 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 • Twitter @qmiswaxConnect + Learn = Grow
    3. 3. Agenda• Architecture – Architectural patterns and styles• Design patterns – Master Data Management – Data Quality – Connected systems – Complex Event Processing – Long running processes – MashupsConnect + Learn = Grow
    4. 4. PatternsFrom 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 PatternConnect + Learn = Grow
    5. 5. Patterns• Architectural pattern is a concept i.e. ETL• Design Patterns is a reusable solution i.e. Batch ETLConnect + Learn = Grow
    6. 6. Domain Area Architecture Pattern Name Design Patterns Solution PatternsData Integration • ETL • Change Data Capture • Error handling • Near Real-Time ETL • Job scheduling • Batch ETL • Data validation • Data Discovery • Slowly Changing Dimensions Load • MFT • Publish/subscribe • One-Way • EAI/ESB • Request/reply • Synchronous • Message Exchange Patterns Request/Response • Basic Call-back • Claim CheckData Architecture • Transaction Data Stores (TDS/OLTP) • Custom Applications • Master Data Store Databases • Operational Data Store • Packaged Application • Data Mart Databases • Data WarehouseBusiness Intelligence • Transactional Reporting • Transactional Reporting • Real-Time Dashboards • Operational Reporting Data Access • In-Memory Analytics • Analytical Reporting • Operational Reporting Data • Statistical Analysis Access • Predictive analytics • Analytical Reporting Data Access • Analytical Dashboard Data Access • Operational Dashboard Data Access • Data MiningMaster data management • Master Data Hub • Master Data Replication • Master Data Services • Master Data SynchronizationData Modelling • Dimensional Data Modelling • Modelling Standards • E-R Data Modelling • Naming ConventionsConnect + Learn = Grow
    7. 7. Let’s move onConnect + Learn = Grow
    8. 8. Master data management - domain (Master Data Replication) – design pattern• Business Problem Company 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 customersConnect + Learn = Grow
    9. 9. Master data management (Master Data Replication)Connect + Learn = Grow
    10. 10. Master data management (Master Data Replication)• Candidate architectures – Database synchronization – SSIS – GEO cluster – File Exchange – Send Email (Pigeons) – Azure Service BusConnect + Learn = Grow
    11. 11. Master data management (Master Data Replication)• Proposed solution – Azure Service Bus with Pub SubConnect + Learn = Grow
    12. 12. Master data management (Master Data Replication) pub /sub FilteringConnect + Learn = Grow
    13. 13. Master data management (Master Data Replication) DEMOConnect + Learn = Grow
    14. 14. 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
    15. 15. 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 nameConnect + Learn = Grow
    16. 16. Data Integration (ETL Data Quality)• Candidate architectures – 3rd party tools (they are generic) – Manual cleansing process – Build custom .net program – SQL 2012 DQS with SSISConnect + Learn = Grow
    17. 17. Data DQSAccount Home Team Revenue Home Address ID Team Type Type Sales Arena Line City State Zip Boston Food &A124324 Celtics Basketball Beverages 655 TD Garden 100 Legends Way Boston MA 2114 2114 New York East 161st Street &7676862 Yankees Baseball Music 389 Yankee Stadium River Avenue NY NY Seattle4934235 Mariners Baseball MLB Music 443 Safeco Field 1516 First Avenue S Seattle WA 98134 98134 Data Quality Knowledge Base Account ID Team Type Address Line City State Zip Structure ValuesType Team External address validation provider Rule Synonyms Reference Validation Detection Data Full Address - Composite Domain Connect + Learn = Grow 17
    18. 18. 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 • UniquenessConnect + Learn = Grow
    19. 19. Data Integration (ETL Data Quality)• Proposed solution SQL 2012 DQS together with SSISConnect + Learn = Grow
    20. 20. Data Integration (ETL Data Quality) DEMOConnect + Learn = Grow
    21. 21. Data Integration (Connected systems ESB )• Business Problem XYZ 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 systemsConnect + Learn = Grow
    22. 22. Data Integration (Connected systems ESB )• Candidate architectures – BizTalk – Export Import File – Extended Service BusConnect + Learn = Grow
    23. 23. Data Integration (Connected systems ESB )• Proposed solution Extended Service BusConnect + Learn = Grow
    24. 24. Data Integration (Connected systems ESB ) Azure AppFabric vs. Server AppFabricWindows Azure AppFabric as a brand namedoesnt exist anymore. It is now calledWindows Azure "Client Libraries for .NET"Connect + Learn = Grow
    25. 25. Data Integration (Connected systems ESB) DEMOConnect + Learn = Grow
    26. 26. 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 CRMConnect + Learn = Grow
    27. 27. Complex Event Processing• Candidate architectures – BizTalk – StreamInsight – Message based Event ProcessingConnect + Learn = Grow
    28. 28. 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 timeConnect + Learn = Grow
    29. 29. Long running processes• Proposed solution Windows Server AppFabric WorkflowsConnect + Learn = Grow
    30. 30. Long running processes• Candidate architectures – Workflow inside CRM – BizTalk Orchestration – Windows Appfabric WorkflowConnect + Learn = Grow
    31. 31. Long running processes What are Workflow Services? WCF Service WF Workflow WCF endpoint Operation External Service WCF endpoint Operation External ServiceConnect + Learn = Grow
    32. 32. 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
    33. 33. Long running processes (workflows) DEMOConnect + Learn = Grow
    34. 34. Long running processes Workflow ManagerWorkflow Manager 1.0 is a new server which introducesnew capabilities for authoring, hosting and managingworkflows. These workflows will run at high scale anddensity, and will support execution in a multi-tenantenvironment. In addition, Workflow Manager 1.0 is used by SharePoint 2013Connect + Learn = Grow
    35. 35. 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 dayConnect + Learn = Grow
    36. 36. Mashups• Candidate architectures – Load all transactions to MS CRM Custom entity – More Licenses for transactional system – UI MashupConnect + Learn = Grow
    37. 37. Mashups• Proposed solution UI MashupConnect + Learn = Grow
    38. 38. Thank youConnect + Learn = Grow
    39. 39. Sebastian Waksmundzki EDataLabs Ltd seb@edatalabs.netThank 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: Complete prior to the closing session to be included in today’s drawing! Connect + Learn = Grow
    40. 40. Session Evaluation Survey online: + Learn = Grow