290 likes | 377 Views
Patterns & Practices for Composing Cloud Services. Haishi Bai Technical Evangelist, Windows Azure 3-526. Agenda. The Starting Point Sprint 1: Relay Sprint 2: Claim-based Identity Sprint 3: Loose-coupling Sprint 4 : Integration Looking ahead. The Starting Point. Server. Client.
E N D
Patterns & Practices for Composing Cloud Services Haishi Bai Technical Evangelist, Windows Azure 3-526
Agenda • The Starting Point • Sprint 1: Relay • Sprint 2: Claim-based Identity • Sprint 3: Loose-coupling • Sprint 4: Integration • Looking ahead
The Starting Point Server Client Views Data Records View Model • Local SQL Server Database (mocked) • WCF Server • WPF Client • Windows Authentication • MVVM Repositories Public Entities Private Entities Public Entities TCP Service Proxy
Sprint 1 Challenges Web Client HTML Views View Model Server Client Public Entities Views Data Records View Model API Repositories Public Entities Public Entities Private Entities Public Entities TCP Service Proxy Proxy ? Public Entities
Integration Strategies • Data • Shared data source • Import/export • Data sync • Connectivity • Expose public endpoints • Windows Azure Virtual Network • Windows Azure Service Bus Relay • Brokered • Middleware • Message-based Integration
Service Bus Relay • Securely expose on-premises WCF services to public • No firewall or network infrastructure changes
Sprint 1 Architecture Web Client HTML Views View Model Server Client Public Entities Views Data Records View Model API Repositories Public Entities Public Entities Private Entities Public Entities TCP Service Proxy Proxy Relay Public Entities Public Entities Relay Endpoint
Sprint 2 Challenges Web Client HTML Views View Model Server Client Public Entities Views Data Records View Model API Repositories Public Entities Public Entities Private Entities Public Entities TCP Service Proxy Proxy Relay Public Entities Public Entities Relay Endpoint ?
Windows Azure Active Directory • Provide access control for your applications • Single sign-on across your applications • Social connections across the enterprise • Integrate with you on-premises AD App App 2 WAAD Tenant Login Page 4 WIF Application WIF Application 3 1 AD
Sprint 2 Architecture Web Client HTML Views View Model Server Client Public Entities Views Data Records View Model API Repositories Public Entities Public Entities Private Entities Public Entities TCP Service Proxy Proxy Relay Public Entities Public Entities Relay Endpoint Directory Sync WAAD
Sprint 3 Challenge Web Client HTML Views View Model Server Client Public Entities Views Data Records View Model API Repositories Public Entities Public Entities Private Entities Public Entities TCP Service Proxy Proxy Relay Public Entities Public Entities Relay Endpoint Directory Sync WAAD
Loose Coupling Pattern with Service Bus • Brokered message communication • Loose-coupling among systems • Asynchronous pattern • Workload leveling
Sprint 3 Architecture Web Client HTML Views View Model Server Client Public Entities Views Data Records View Model API Repositories Public Entities Public Entities Private Entities Public Entities TCP Service Proxy Proxy Relay Order Queue Public Entities Public Entities Relay Endpoint Order Taker Directory Sync WAAD
Sprint 4 Challenge Web Client HTML Views View Model Server Client Public Entities Views Data Records View Model API Repositories Public Entities Public Entities Private Entities Public Entities TCP Service Proxy Proxy Relay Order Queue Public Entities Public Entities Relay Endpoint Order Taker Directory Sync WAAD
Sprint 4 Architecture Web Client HTML Views View Model Server Client Public Entities Views Data Records View Model API Repositories Public Entities Public Entities Private Entities Public Entities TCP Service Proxy Proxy AMQP Relay Order Queue Public Entities Public Entities Relay Endpoint Order Taker Directory Sync WAAD
Message-based Integration Patterns Pipes and filters Message router Message translator Message endpoint Point-to-point channel Publish-subscribe channel Data type channel Invalid message channel Dead letter channel Guaranteed delivery Channel adapter Messaging bridge Message bus Command message Document message Event message Request-reply Return address Correlation Sequence Expiration Format indicator Content based router Message filter Dynamic router Recipient list Splitter Aggregator Sequencer Composed message processor Scatter-gather Routing slip Process manager Message broker Envelop wrapper Content enricher Content filter Claim check Normalizer Canonical data model Message gateway Messaging mapper Transactional client Polling consumer Event-driven consumer Competing consumers Message dispatcher Selective consumer Durable subscriber Idempotent receiver Service Activator Control bus Detour Wire tap Message history Message store Smart proxy Test message Channel purger
Sprint 5 Architecture Web Client HTML Views BLOB View Model Server Client Public Entities Views Data Records View Model API CDN Repositories Cache Public Entities Public Entities Private Entities Public Entities TCP Service Proxy Proxy Relay Order Queue Public Entities Public Entities Relay Endpoint Order Taker Directory Sync WAAD
Sprint 6 Architecture Server Web Client Data Sync HTML Views Repositories BLOB View Model Server Client Service Public Entities Views Data Records View Model API CDN Repositories Cache Public Entities Public Entities Private Entities Public Entities Order Taker TCP Service Proxy Proxy Relay Order Queue Public Entities Public Entities Relay Endpoint Order Taker Directory Sync WAAD
Sprint 7 Architecture Server Web Client Server HTML Views Repositories BLOB View Model Client Service TCP Public Entities Views View Model API LB CDN Cache Public Entities Public Entities Order Taker Proxy Proxy Mobile Order Queue Mobile WAAD
Sprint 8 Architecture Server Web Client Web Client Server HTML Views Repositories BLOB View Model Client Service TCP Public Entities Views View Model API LB CDN Cache Public Entities Public Entities Order Taker Proxy Proxy Mobile Office Order Queue Mobile BizTalk WAAD Accounting
Epilogue: Recipe-VVM • R – Repository • E – Entity • C – Claim-based architecture • I – Action API and Query API • PE – Public Entity • V – View • VM – View Model
Resources • www.bing.com • www.windowsazure.com • msdn.microsoft.com @HaishiBai2010 blog.haishibai.com @trontron
Required Slide *delete this box when your slide is finalized Your MS Tag will be inserted here during the final scrub. Evaluate this session • Scan this QR codeto evaluate this session and be automatically entered in a drawing to win a prize!