SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
Application Patterns 
tomi vanek 
February 2014
Copyright © 2014 Accenture All rights reserved. 
2 
•User Interaction 
•Services 
•Persistence – scaling, locking, cache 
•Real-time processing 
•High Volume Batch Processing 
Agenda
User Interaction
Copyright © 2014 Accenture All rights reserved. 
4 
MVP 
MVC / MVP / MV-VM 
Model 
View 
Controller 
Action 
Model 
View 
Presenter 
Action 
Model 
View 
View-Model 
Action 
MVC 
MV-VM
Copyright © 2014 Accenture All rights reserved. 
5 
Model-View-Controller (MVC)
Copyright © 2014 Accenture All rights reserved. 
6 
MVC Variant: Page Flow
Copyright © 2014 Accenture All rights reserved. 
7 
Page flow with asynchronous commit of order 
Simple synchronous MVC implementation 
MVC: Page Flow Example
Copyright © 2014 Accenture All rights reserved. 
8 
In-Memory Server Session State
Copyright © 2014 Accenture All rights reserved. 
9 
Persistent Session State
Copyright © 2014 Accenture All rights reserved. 
10 
Serialized Session State in View
Copyright © 2014 Accenture All rights reserved. 
11 
Client Session State in Local Storage
Services
Copyright © 2014 Accenture All rights reserved. 
13 
Method invocation / Resource manipulation 
•Services: 
–Strongly typed interface contract. 
–Broad range of aspects are standardized. 
–Implemented in integration infrastructure and technologies. 
–Service discoverability and lifetime management. 
•But: 
–Limits in scalability. 
–Expensive extensibility. 
•Resources: 
–Simple data exploration. 
–Simple extensibility. 
–Simple data consumer code. 
•But: 
–Limited schema definition. 
–No standards for complex functionalities / scenarios.
Copyright © 2014 Accenture All rights reserved. 
14 
Business Layer Remote Procedure Call 
Presentation 
Presentation Layer 
Business Tier 
Data Tier 
External 
Business Module 
Resources 
Data Layer 
Business Layer 
External 
System 
Repository 
Integration Gateway 
Service 
Service 
Relational Database
Copyright © 2014 Accenture All rights reserved. 
15 
Compact Business Layer with Active Records 
Application Tier 
Dynamic 
Presentation Module 
Presentation Layer 
Resources 
Domain Layer 
Presentation 
Data Tier 
External 
External 
System 
Integration Gateway 
Relational Database
Copyright © 2014 Accenture All rights reserved. 
16 
REST / WS Business Layer 
Presentation 
Business Tier 
Data Tier 
External 
Business Module 
Resources 
Data Layer 
Business Layer 
Presentation Layer 
External 
System 
Repository 
Integration Gateway 
Service 
Service 
Relational Database 
Controller
Copyright © 2014 Accenture All rights reserved. 
17 
Asynchronous Business Layer 
Presentation 
Business Tier 
Data Tier 
External 
Business Module 
Resources 
Data Layer 
Business Layer 
Presentation Layer 
External 
System 
Repository 
Relational Database 
Integration Gateway 
Queue 
Queue 
Service 
Queue 
Queue 
Service
Copyright © 2014 Accenture All rights reserved. 
18 
Push Notification Business Layer 
Presentation 
Business Tier 
Business Module 
Resources 
Data Layer 
Business Layer 
Presentation Layer 
Subject Register 
Service
Copyright © 2014 Accenture All rights reserved. 
19 
Data synchronization
Persistence - Scaling
Copyright © 2014 Accenture All rights reserved. 
21 
Database Scaling: Master – Slave 
Internet 
Load Balancer 
Load Balancer 
Slaves 
Web Servers 
Master 
Write 
Read 
Replicate
Copyright © 2014 Accenture All rights reserved. 
22 
Database Scaling: Active - Passive 
Internet 
Load Balancer 
Passive 
Web Servers 
Failed 
Active Instance 
Passive to Active 
Instance 
Replicate 
Read / Write
Copyright © 2014 Accenture All rights reserved. 
23 
Database Scaling: Cluster 
Internet 
Load Balancer 
Virtual Database Cluster 
Controller 
Virtual Database Cluster 
Controller
Copyright © 2014 Accenture All rights reserved. 
24 
Database Scaling 
Load Balancer 
Shard Resolver 
Web Servers 
Product 1 .. n 
Product n+1 .. o 
Product o+1 .. p
Locking
Copyright © 2014 Accenture All rights reserved. 
26 
Optimistic Locking
Copyright © 2014 Accenture All rights reserved. 
27 
Pessimistic Locking
Cache
Copyright © 2014 Accenture All rights reserved. 
29 
Read-through / Write-through Cache
Copyright © 2014 Accenture All rights reserved. 
30 
Pre-fetch
Copyright © 2014 Accenture All rights reserved. 
31 
Publisher
Real-time processing 
Integration Patterns
Copyright © 2014 Accenture All rights reserved. 
33 
Reference model
34 
Messaging Idioms 
•Channels 
•Message Construction 
•Rooting 
•Transformation 
Messaging Design Patterns 
•Pipes and Filters 
•Claim Check 
•Scatter-Gather 
Integration Application Architecture Design Patterns
Copyright © 2014 Accenture All rights reserved. 
35 
Pipes and filters
Copyright © 2014 Accenture All rights reserved. 
36 
Pipeline
Copyright © 2014 Accenture All rights reserved. 
37 
Claim-check
Copyright © 2014 Accenture All rights reserved. 
38 
Claim-check for secure communication
Copyright © 2014 Accenture All rights reserved. 
39 
Scatter-Gather with Publish-Subscribe Input Channel
Copyright © 2014 Accenture All rights reserved. 
40 
Scatter-Gather with Recipient List
Scale-Out Batch 
High Volume Batch Processing
Copyright © 2014 Accenture All rights reserved. 
42 
Batch Application Elements 
Job Launcher 
Job 
Step 
Reader 
Processor 
Writer 
Job Repository
Copyright © 2014 Accenture All rights reserved. 
43 
Batch reference model
Copyright © 2014 Accenture All rights reserved. 
44 
Scaling
Copyright © 2014 Accenture All rights reserved. 
45 
Job with Parallel Steps
Copyright © 2014 Accenture All rights reserved. 
46 
Step with parallel threads
Copyright © 2014 Accenture All rights reserved. 
47 
Partitioning
Copyright © 2014 Accenture All rights reserved. 
48 
Remote chunking
Discussion

Más contenido relacionado

La actualidad más candente

SpringPeople Introduction to Cloud Computing
SpringPeople Introduction to Cloud ComputingSpringPeople Introduction to Cloud Computing
SpringPeople Introduction to Cloud ComputingSpringPeople
 
Hoe is 80% van uw datacenter beheer te automatiseren?
Hoe is 80% van uw datacenter beheer te automatiseren?Hoe is 80% van uw datacenter beheer te automatiseren?
Hoe is 80% van uw datacenter beheer te automatiseren?Proact Netherlands B.V.
 
Consul: Service Mesh for Microservices
Consul: Service Mesh for MicroservicesConsul: Service Mesh for Microservices
Consul: Service Mesh for MicroservicesArmonDadgar
 
Open sourceadoption prajod.wso2.v3
Open sourceadoption prajod.wso2.v3Open sourceadoption prajod.wso2.v3
Open sourceadoption prajod.wso2.v3WSO2
 
[WSO2Con EU 2017] Keynote: Ballerina Plans and Futures
[WSO2Con EU 2017] Keynote: Ballerina Plans and Futures[WSO2Con EU 2017] Keynote: Ballerina Plans and Futures
[WSO2Con EU 2017] Keynote: Ballerina Plans and FuturesWSO2
 
Evolving Dev Ops: The Benefits of PaaS and Application Dial Tone
Evolving Dev Ops: The Benefits of PaaS and Application Dial ToneEvolving Dev Ops: The Benefits of PaaS and Application Dial Tone
Evolving Dev Ops: The Benefits of PaaS and Application Dial ToneVMware Tanzu
 

La actualidad más candente (7)

SpringPeople Introduction to Cloud Computing
SpringPeople Introduction to Cloud ComputingSpringPeople Introduction to Cloud Computing
SpringPeople Introduction to Cloud Computing
 
Hoe is 80% van uw datacenter beheer te automatiseren?
Hoe is 80% van uw datacenter beheer te automatiseren?Hoe is 80% van uw datacenter beheer te automatiseren?
Hoe is 80% van uw datacenter beheer te automatiseren?
 
Consul: Service Mesh for Microservices
Consul: Service Mesh for MicroservicesConsul: Service Mesh for Microservices
Consul: Service Mesh for Microservices
 
Open sourceadoption prajod.wso2.v3
Open sourceadoption prajod.wso2.v3Open sourceadoption prajod.wso2.v3
Open sourceadoption prajod.wso2.v3
 
[WSO2Con EU 2017] Keynote: Ballerina Plans and Futures
[WSO2Con EU 2017] Keynote: Ballerina Plans and Futures[WSO2Con EU 2017] Keynote: Ballerina Plans and Futures
[WSO2Con EU 2017] Keynote: Ballerina Plans and Futures
 
Evolving Dev Ops: The Benefits of PaaS and Application Dial Tone
Evolving Dev Ops: The Benefits of PaaS and Application Dial ToneEvolving Dev Ops: The Benefits of PaaS and Application Dial Tone
Evolving Dev Ops: The Benefits of PaaS and Application Dial Tone
 
An SD-WAN Bill of Rights
An SD-WAN Bill of RightsAn SD-WAN Bill of Rights
An SD-WAN Bill of Rights
 

Destacado

Spring Integration Done Bootifully
Spring Integration Done BootifullySpring Integration Done Bootifully
Spring Integration Done BootifullyGlenn Renfro
 
Spring Batch in Code - simple DB to DB batch applicaiton
Spring Batch in Code - simple DB to DB batch applicaitonSpring Batch in Code - simple DB to DB batch applicaiton
Spring Batch in Code - simple DB to DB batch applicaitontomi vanek
 
LDAP Development Using Spring LDAP
LDAP Development Using Spring LDAPLDAP Development Using Spring LDAP
LDAP Development Using Spring LDAPLDAPCon
 
Sophisticated JPA with Spring & Hades
Sophisticated JPA with Spring & HadesSophisticated JPA with Spring & Hades
Sophisticated JPA with Spring & HadesOliver Gierke
 
The Twelve Factor Apps
The Twelve Factor AppsThe Twelve Factor Apps
The Twelve Factor Appstomi vanek
 
Morphia, Spring Data & Co.
Morphia, Spring Data & Co.Morphia, Spring Data & Co.
Morphia, Spring Data & Co.Tobias Trelle
 
Creating Modular Test-Driven SPAs with Spring and AngularJS
Creating Modular Test-Driven SPAs with Spring and AngularJSCreating Modular Test-Driven SPAs with Spring and AngularJS
Creating Modular Test-Driven SPAs with Spring and AngularJSGunnar Hillert
 
Run your Java code on Cloud Foundry
Run your Java code on Cloud FoundryRun your Java code on Cloud Foundry
Run your Java code on Cloud FoundryAndy Piper
 
Lazy vs. Eager Loading Strategies in JPA 2.1
Lazy vs. Eager Loading Strategies in JPA 2.1Lazy vs. Eager Loading Strategies in JPA 2.1
Lazy vs. Eager Loading Strategies in JPA 2.1Patrycja Wegrzynowicz
 
Develop modern apps using Spring ecosystem at time of BigData
Develop modern apps using Spring ecosystem at time of BigData Develop modern apps using Spring ecosystem at time of BigData
Develop modern apps using Spring ecosystem at time of BigData Oleg Tsal-Tsalko
 
Spring Data, Jongo & Co.
Spring Data, Jongo & Co.Spring Data, Jongo & Co.
Spring Data, Jongo & Co.Tobias Trelle
 
Spring Batch Performance Tuning
Spring Batch Performance TuningSpring Batch Performance Tuning
Spring Batch Performance TuningGunnar Hillert
 
Twitter APIs for #MediaHackday
Twitter APIs for #MediaHackdayTwitter APIs for #MediaHackday
Twitter APIs for #MediaHackdayAndy Piper
 
Implementing microservices tracing with spring cloud and zipkin (spring one)
Implementing microservices tracing with spring cloud and zipkin (spring one)Implementing microservices tracing with spring cloud and zipkin (spring one)
Implementing microservices tracing with spring cloud and zipkin (spring one)Reshmi Krishna
 

Destacado (15)

Spring Integration Done Bootifully
Spring Integration Done BootifullySpring Integration Done Bootifully
Spring Integration Done Bootifully
 
Spring Batch in Code - simple DB to DB batch applicaiton
Spring Batch in Code - simple DB to DB batch applicaitonSpring Batch in Code - simple DB to DB batch applicaiton
Spring Batch in Code - simple DB to DB batch applicaiton
 
LDAP Development Using Spring LDAP
LDAP Development Using Spring LDAPLDAP Development Using Spring LDAP
LDAP Development Using Spring LDAP
 
Sophisticated JPA with Spring & Hades
Sophisticated JPA with Spring & HadesSophisticated JPA with Spring & Hades
Sophisticated JPA with Spring & Hades
 
The Twelve Factor Apps
The Twelve Factor AppsThe Twelve Factor Apps
The Twelve Factor Apps
 
Second Level Cache in JPA Explained
Second Level Cache in JPA ExplainedSecond Level Cache in JPA Explained
Second Level Cache in JPA Explained
 
Morphia, Spring Data & Co.
Morphia, Spring Data & Co.Morphia, Spring Data & Co.
Morphia, Spring Data & Co.
 
Creating Modular Test-Driven SPAs with Spring and AngularJS
Creating Modular Test-Driven SPAs with Spring and AngularJSCreating Modular Test-Driven SPAs with Spring and AngularJS
Creating Modular Test-Driven SPAs with Spring and AngularJS
 
Run your Java code on Cloud Foundry
Run your Java code on Cloud FoundryRun your Java code on Cloud Foundry
Run your Java code on Cloud Foundry
 
Lazy vs. Eager Loading Strategies in JPA 2.1
Lazy vs. Eager Loading Strategies in JPA 2.1Lazy vs. Eager Loading Strategies in JPA 2.1
Lazy vs. Eager Loading Strategies in JPA 2.1
 
Develop modern apps using Spring ecosystem at time of BigData
Develop modern apps using Spring ecosystem at time of BigData Develop modern apps using Spring ecosystem at time of BigData
Develop modern apps using Spring ecosystem at time of BigData
 
Spring Data, Jongo & Co.
Spring Data, Jongo & Co.Spring Data, Jongo & Co.
Spring Data, Jongo & Co.
 
Spring Batch Performance Tuning
Spring Batch Performance TuningSpring Batch Performance Tuning
Spring Batch Performance Tuning
 
Twitter APIs for #MediaHackday
Twitter APIs for #MediaHackdayTwitter APIs for #MediaHackday
Twitter APIs for #MediaHackday
 
Implementing microservices tracing with spring cloud and zipkin (spring one)
Implementing microservices tracing with spring cloud and zipkin (spring one)Implementing microservices tracing with spring cloud and zipkin (spring one)
Implementing microservices tracing with spring cloud and zipkin (spring one)
 

Similar a Application patterns

Caching Patterns
Caching PatternsCaching Patterns
Caching Patternstomi vanek
 
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)VMware Tanzu
 
IW14 Session: webMethods World
IW14 Session: webMethods WorldIW14 Session: webMethods World
IW14 Session: webMethods WorldSoftware AG
 
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipVMware Tanzu
 
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipMatt Stine
 
Pivotal cf for_devops_mkim_20141209
Pivotal cf for_devops_mkim_20141209Pivotal cf for_devops_mkim_20141209
Pivotal cf for_devops_mkim_20141209minseok kim
 
To Microservices and Beyond
To Microservices and BeyondTo Microservices and Beyond
To Microservices and BeyondSimon Elisha
 
Architecture & Operations
Architecture & OperationsArchitecture & Operations
Architecture & OperationsVMware Tanzu
 
Cloud native Microservices using Spring Boot
Cloud native Microservices using Spring BootCloud native Microservices using Spring Boot
Cloud native Microservices using Spring BootSufyaan Kazi
 
apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...
apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...
apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...apidays
 
Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...
Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...
Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...VMware Tanzu
 
Redefining Perspectives edition 12 and 13 session 2
Redefining Perspectives edition 12 and 13 session 2Redefining Perspectives edition 12 and 13 session 2
Redefining Perspectives edition 12 and 13 session 2sapientindia
 
Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...
Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...
Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...VMware Tanzu
 
Case Study: Datalink—Manage IT monitoring the MSP way
Case Study: Datalink—Manage IT monitoring the MSP wayCase Study: Datalink—Manage IT monitoring the MSP way
Case Study: Datalink—Manage IT monitoring the MSP wayCA Technologies
 
How Enterprises will Benefit from SDN
How Enterprises will Benefit from SDN How Enterprises will Benefit from SDN
How Enterprises will Benefit from SDN Shashi Kiran
 
Add Apache Web Server to your Unified Monitoring Toolkit
Add Apache Web Server to your Unified Monitoring ToolkitAdd Apache Web Server to your Unified Monitoring Toolkit
Add Apache Web Server to your Unified Monitoring ToolkitAppDynamics
 
The Fantastic Voyage to PaaS - Are we there yet? (Cloud Foundry Summit 2014)
The Fantastic Voyage to PaaS - Are we there yet? (Cloud Foundry Summit 2014)The Fantastic Voyage to PaaS - Are we there yet? (Cloud Foundry Summit 2014)
The Fantastic Voyage to PaaS - Are we there yet? (Cloud Foundry Summit 2014)VMware Tanzu
 
Best Practices for Monitoring Cloud Networks
Best Practices for Monitoring Cloud NetworksBest Practices for Monitoring Cloud Networks
Best Practices for Monitoring Cloud NetworksThousandEyes
 
Evolving Devops: The Benefits of PaaS and Application Dial Tone
Evolving Devops: The Benefits of PaaS and Application Dial ToneEvolving Devops: The Benefits of PaaS and Application Dial Tone
Evolving Devops: The Benefits of PaaS and Application Dial Tonecornelia davis
 
What's new in Pivotal Cloud Foundry 1.6
What's new in Pivotal Cloud Foundry 1.6What's new in Pivotal Cloud Foundry 1.6
What's new in Pivotal Cloud Foundry 1.6dektlong
 

Similar a Application patterns (20)

Caching Patterns
Caching PatternsCaching Patterns
Caching Patterns
 
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
 
IW14 Session: webMethods World
IW14 Session: webMethods WorldIW14 Session: webMethods World
IW14 Session: webMethods World
 
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
 
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
 
Pivotal cf for_devops_mkim_20141209
Pivotal cf for_devops_mkim_20141209Pivotal cf for_devops_mkim_20141209
Pivotal cf for_devops_mkim_20141209
 
To Microservices and Beyond
To Microservices and BeyondTo Microservices and Beyond
To Microservices and Beyond
 
Architecture & Operations
Architecture & OperationsArchitecture & Operations
Architecture & Operations
 
Cloud native Microservices using Spring Boot
Cloud native Microservices using Spring BootCloud native Microservices using Spring Boot
Cloud native Microservices using Spring Boot
 
apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...
apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...
apidays LIVE Australia 2020 - The Evolution of APIs: Events and the AsyncAPI ...
 
Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...
Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...
Part 2: Architecture and the Operator Experience (Pivotal Cloud Platform Road...
 
Redefining Perspectives edition 12 and 13 session 2
Redefining Perspectives edition 12 and 13 session 2Redefining Perspectives edition 12 and 13 session 2
Redefining Perspectives edition 12 and 13 session 2
 
Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...
Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...
Pivotal CenturyLink Cloud Platform Seminar Presentations: Architecture & Oper...
 
Case Study: Datalink—Manage IT monitoring the MSP way
Case Study: Datalink—Manage IT monitoring the MSP wayCase Study: Datalink—Manage IT monitoring the MSP way
Case Study: Datalink—Manage IT monitoring the MSP way
 
How Enterprises will Benefit from SDN
How Enterprises will Benefit from SDN How Enterprises will Benefit from SDN
How Enterprises will Benefit from SDN
 
Add Apache Web Server to your Unified Monitoring Toolkit
Add Apache Web Server to your Unified Monitoring ToolkitAdd Apache Web Server to your Unified Monitoring Toolkit
Add Apache Web Server to your Unified Monitoring Toolkit
 
The Fantastic Voyage to PaaS - Are we there yet? (Cloud Foundry Summit 2014)
The Fantastic Voyage to PaaS - Are we there yet? (Cloud Foundry Summit 2014)The Fantastic Voyage to PaaS - Are we there yet? (Cloud Foundry Summit 2014)
The Fantastic Voyage to PaaS - Are we there yet? (Cloud Foundry Summit 2014)
 
Best Practices for Monitoring Cloud Networks
Best Practices for Monitoring Cloud NetworksBest Practices for Monitoring Cloud Networks
Best Practices for Monitoring Cloud Networks
 
Evolving Devops: The Benefits of PaaS and Application Dial Tone
Evolving Devops: The Benefits of PaaS and Application Dial ToneEvolving Devops: The Benefits of PaaS and Application Dial Tone
Evolving Devops: The Benefits of PaaS and Application Dial Tone
 
What's new in Pivotal Cloud Foundry 1.6
What's new in Pivotal Cloud Foundry 1.6What's new in Pivotal Cloud Foundry 1.6
What's new in Pivotal Cloud Foundry 1.6
 

Último

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationShrmpro
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...masabamasaba
 

Último (20)

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 

Application patterns

  • 1. Application Patterns tomi vanek February 2014
  • 2. Copyright © 2014 Accenture All rights reserved. 2 •User Interaction •Services •Persistence – scaling, locking, cache •Real-time processing •High Volume Batch Processing Agenda
  • 4. Copyright © 2014 Accenture All rights reserved. 4 MVP MVC / MVP / MV-VM Model View Controller Action Model View Presenter Action Model View View-Model Action MVC MV-VM
  • 5. Copyright © 2014 Accenture All rights reserved. 5 Model-View-Controller (MVC)
  • 6. Copyright © 2014 Accenture All rights reserved. 6 MVC Variant: Page Flow
  • 7. Copyright © 2014 Accenture All rights reserved. 7 Page flow with asynchronous commit of order Simple synchronous MVC implementation MVC: Page Flow Example
  • 8. Copyright © 2014 Accenture All rights reserved. 8 In-Memory Server Session State
  • 9. Copyright © 2014 Accenture All rights reserved. 9 Persistent Session State
  • 10. Copyright © 2014 Accenture All rights reserved. 10 Serialized Session State in View
  • 11. Copyright © 2014 Accenture All rights reserved. 11 Client Session State in Local Storage
  • 13. Copyright © 2014 Accenture All rights reserved. 13 Method invocation / Resource manipulation •Services: –Strongly typed interface contract. –Broad range of aspects are standardized. –Implemented in integration infrastructure and technologies. –Service discoverability and lifetime management. •But: –Limits in scalability. –Expensive extensibility. •Resources: –Simple data exploration. –Simple extensibility. –Simple data consumer code. •But: –Limited schema definition. –No standards for complex functionalities / scenarios.
  • 14. Copyright © 2014 Accenture All rights reserved. 14 Business Layer Remote Procedure Call Presentation Presentation Layer Business Tier Data Tier External Business Module Resources Data Layer Business Layer External System Repository Integration Gateway Service Service Relational Database
  • 15. Copyright © 2014 Accenture All rights reserved. 15 Compact Business Layer with Active Records Application Tier Dynamic Presentation Module Presentation Layer Resources Domain Layer Presentation Data Tier External External System Integration Gateway Relational Database
  • 16. Copyright © 2014 Accenture All rights reserved. 16 REST / WS Business Layer Presentation Business Tier Data Tier External Business Module Resources Data Layer Business Layer Presentation Layer External System Repository Integration Gateway Service Service Relational Database Controller
  • 17. Copyright © 2014 Accenture All rights reserved. 17 Asynchronous Business Layer Presentation Business Tier Data Tier External Business Module Resources Data Layer Business Layer Presentation Layer External System Repository Relational Database Integration Gateway Queue Queue Service Queue Queue Service
  • 18. Copyright © 2014 Accenture All rights reserved. 18 Push Notification Business Layer Presentation Business Tier Business Module Resources Data Layer Business Layer Presentation Layer Subject Register Service
  • 19. Copyright © 2014 Accenture All rights reserved. 19 Data synchronization
  • 21. Copyright © 2014 Accenture All rights reserved. 21 Database Scaling: Master – Slave Internet Load Balancer Load Balancer Slaves Web Servers Master Write Read Replicate
  • 22. Copyright © 2014 Accenture All rights reserved. 22 Database Scaling: Active - Passive Internet Load Balancer Passive Web Servers Failed Active Instance Passive to Active Instance Replicate Read / Write
  • 23. Copyright © 2014 Accenture All rights reserved. 23 Database Scaling: Cluster Internet Load Balancer Virtual Database Cluster Controller Virtual Database Cluster Controller
  • 24. Copyright © 2014 Accenture All rights reserved. 24 Database Scaling Load Balancer Shard Resolver Web Servers Product 1 .. n Product n+1 .. o Product o+1 .. p
  • 26. Copyright © 2014 Accenture All rights reserved. 26 Optimistic Locking
  • 27. Copyright © 2014 Accenture All rights reserved. 27 Pessimistic Locking
  • 28. Cache
  • 29. Copyright © 2014 Accenture All rights reserved. 29 Read-through / Write-through Cache
  • 30. Copyright © 2014 Accenture All rights reserved. 30 Pre-fetch
  • 31. Copyright © 2014 Accenture All rights reserved. 31 Publisher
  • 33. Copyright © 2014 Accenture All rights reserved. 33 Reference model
  • 34. 34 Messaging Idioms •Channels •Message Construction •Rooting •Transformation Messaging Design Patterns •Pipes and Filters •Claim Check •Scatter-Gather Integration Application Architecture Design Patterns
  • 35. Copyright © 2014 Accenture All rights reserved. 35 Pipes and filters
  • 36. Copyright © 2014 Accenture All rights reserved. 36 Pipeline
  • 37. Copyright © 2014 Accenture All rights reserved. 37 Claim-check
  • 38. Copyright © 2014 Accenture All rights reserved. 38 Claim-check for secure communication
  • 39. Copyright © 2014 Accenture All rights reserved. 39 Scatter-Gather with Publish-Subscribe Input Channel
  • 40. Copyright © 2014 Accenture All rights reserved. 40 Scatter-Gather with Recipient List
  • 41. Scale-Out Batch High Volume Batch Processing
  • 42. Copyright © 2014 Accenture All rights reserved. 42 Batch Application Elements Job Launcher Job Step Reader Processor Writer Job Repository
  • 43. Copyright © 2014 Accenture All rights reserved. 43 Batch reference model
  • 44. Copyright © 2014 Accenture All rights reserved. 44 Scaling
  • 45. Copyright © 2014 Accenture All rights reserved. 45 Job with Parallel Steps
  • 46. Copyright © 2014 Accenture All rights reserved. 46 Step with parallel threads
  • 47. Copyright © 2014 Accenture All rights reserved. 47 Partitioning
  • 48. Copyright © 2014 Accenture All rights reserved. 48 Remote chunking