The document discusses a presentation on software architecture and design patterns for developers. The agenda includes discussing architectural patterns and styles, as well as design patterns for topics like master data management, data quality, connected systems, complex event processing, long running processes, and mashups. The presentation aims to provide optimal patterns and solutions to common problems in these domains.
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
Software architecture & design patterns for MS CRM Developers
1. Software Architecture
&
Design Patterns for
Developers
Sebastian Waksmundzki
eDataLabs Ltd.
www.edatalabs.net
Connect + Learn = Grow
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 www.mindthecloud.net
• Twitter @qmiswax
Connect + Learn = Grow
3. 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
4. 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
5. Patterns
• Architectural pattern is a concept i.e. ETL
• Design Patterns is a reusable solution i.e.
Batch ETL
Connect + Learn = Grow
6. Domain Area Architecture Pattern Name Design Patterns Solution Patterns
Data 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 Check
Data Architecture • Transaction Data Stores (TDS/OLTP) • Custom Applications
• Master Data Store Databases
• Operational Data Store • Packaged Application
• Data Mart Databases
• Data Warehouse
Business 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 Mining
Master data management • Master Data Hub • Master Data Replication
• Master Data Services
• Master Data Synchronization
Data Modelling • Dimensional Data Modelling • Modelling Standards
• E-R Data Modelling • Naming Conventions
Connect + Learn = Grow
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 customers
Connect + Learn = Grow
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. 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
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 SSIS
Connect + Learn = Grow
17. Data DQS
Account 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
Seattle
4934235 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. 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
19. Data Integration
(ETL Data Quality)
• Proposed solution
SQL 2012 DQS together with SSIS
Connect + Learn = Grow
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 systems
Connect + Learn = Grow
22. Data Integration
(Connected systems ESB )
• Candidate architectures
– BizTalk
– Export Import File
– Extended Service Bus
Connect + Learn = Grow
23. Data Integration
(Connected systems ESB )
• Proposed solution Extended Service Bus
Connect + Learn = Grow
24. 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
25. Data Integration
(Connected systems ESB)
DEMO
Connect + Learn = Grow
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
CRM
Connect + Learn = Grow
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 time
Connect + Learn = Grow
29. Long running processes
• Proposed solution
Windows Server AppFabric Workflows
Connect + Learn = Grow
31. Long running processes
What are Workflow Services?
WCF Service
WF Workflow
WCF endpoint Operation
External
Service
WCF endpoint Operation
External
Service
Connect + Learn = Grow
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
34. Long running processes
Workflow 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
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 day
Connect + Learn = Grow
36. Mashups
• Candidate architectures
– Load all transactions to MS CRM Custom
entity
– More Licenses for transactional system
– UI Mashup
Connect + Learn = Grow
39. Sebastian Waksmundzki
EDataLabs Ltd
seb@edatalabs.net
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.aspx
Complete prior to the closing session to be included in today’s drawing!
Connect + Learn = Grow
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.