Decoupled applications with AppFabric
Anže Vodovnik ([email protected])
Who am I?
• Software Architect @ Studio Pešec
• 10+ years of experience (C#, Java...)
• Highly scalable, distributed applications
• Microsoft Certified Technology Specialist
• http://www.linkedin.com/in/avodovnik
• @avodovnik
• http://lab.studiopesec.com
Agenda
• Coupled vs. Decoupled
• AppFabric
• When and where
• Discussion & QA
Coupled vs. Decoupled
Database DAL Business
Logic UI
Coupled vs. Decoupled
UI Business
Logic DAL Database
How to communicate through boundaries?
• We know that already: interfaces
• To exchange information we define contracts
• Implementation changes
Benefits of decoupling
• Pipelined development
• Different languages/technologies
• Different timelines
• Change agnostic!
Scalability
DB (SQL Server,
MySQL, NoSQL)
Browser
Web Server (ASP.NET, PHP,
Ruby, …)
Decoupling!
Browser
Web Server (ASP.NET, PHP,
Ruby, …)
Sessions
ARE SCALABLE (DISTRIBUTED) APPS REALLY *THIS* EASY?
BUT WAIT A MOMENT
Browser
DB (SQL Server,
MySQL, NoSQL)
Web Server (ASP.NET, PHP,
Ruby, …)
Sessions
Apps
Services (WCF, WF, …)
Sessions / State
LOB
Systems
AuthN/Z
AuthN/Z
Introducing AppFabric
Windows Azure AppFabric
Management Management Management Management Management
Prog. Models
& Tools
Prog. Models
& Tools
Prog. Models
& Tools
Prog. Models
& Tools Prog. Models
& Tools
TAX RETURN SUBMISSION APPLICATION
EXAMPLE
High-level architecture
Scalability, revisited
• Time-based load, e.g. Tax-return submission
AppFabric Queues & Topics
• Load Leveling
• Loose coupling (no consumer?)
• Load balancing
Queue P C
P
P C
C
AppFabric Queues & Topics
• Microsoft‘s Publish/Subscribe
Topic P S
S
S
C
C
C
Why?
What‘s better?
When & where?
• Potentially scalable application
• Different technologies
• Separate development teams
– Different paces of development
– Different release cadence
• Load leveling & balancing
SAMPLE OF APPFABRIC QUEUES http://lab.studiopesec.com/
Top Related