SlideShare a Scribd company logo
1 of 41
Thank you to our Sponsors 
Media Sponsor:
Reducing External Risks 
How To Keep Other Software From Messing With Yours
External Risks 
Any system that you rely on which will potentially have a 
negative impact on you when it changes
Examples 
• Web based asmx/svc/RESTful endpoints 
• Internally hosted 3rd party applications 
• User Controls 
• Databases 
• File System
Zero Control 
• Cloud based service endpoint/api
Limited Influence 
• 3rd party control suite 
• Enterprise message queue (software or message content) 
• Internally installed 3rd party application/services
Perceived Influence 
• Internally created service endpoint/api that doesn’t belong to 
your team 
• Internally created UI control suite 
• Internally installed 3rd party application/services 
• Multi-application database 
• Computer file system
External 
Little influence over what changes are made 
Some influence over when changes are made 
Internal 
> influence if it belongs to your project 
< influence if it is cross project 
cross project == 3rd party
Change 
is 
Guaranteed
Don’t fear change – embrace it 
Anthony J D’Angelo
Don’t fear change – 
limit its surface area
Don’t fear change – 
control it’s impact
Limiting Surface Area 
• Rooted in Object Oriented Programming 
• Based on known design patterns 
• Can be implemented by any team and in any language
Proxy
A proxy, in its most general form, is a 
class functioning as an interface to 
something else. 
http://en.wikipedia.org/wiki/Proxy_pattern
Add Service Reference 
http://wsf.cdyne.com/WeatherWS/Weather.asmx
Add Service Reference
…and this is good….right? 
• No low level communication code 
• Generates all the constructs you may ever need 
• Its repeatable
Update Service Reference
Update Everywhere In Your Application
Problem solved… 
Technical details of communication are pretty well 
encapsulated 
Interface changes are isolated and controllable 
Technical construct changes are isolated and 
controllable 
Source interface is limited to only the pieces that are 
needed
Adapter
It (adapter pattern) is often used to 
make existing classes work with others 
without modifying their source code 
http://en.wikipedia.org/wiki/Adapter_pattern
Some 
Web 
Service 
Your 
application 
code 
Adapter
Adapt the Proxy 
• Translate the input parameters and return values 
• Convert the input and return structures
Parameters and Return Values 
On the generated proxy 
On the adapter
Parameters and Return Structures
Some 
Web 
Service 
Your 
application 
code 
Adapter
Scope of Change 
• If its on the source you adapt it 
• True adapter will include all endpoints offered by source
Problem solved… 
Technical details of communication are pretty well 
encapsulated 
Interface changes are isolated and controllable 
Technical construct changes are isolated and 
controllable 
Source interface is limited to only the pieces that are 
needed
Façade 
(and the Interface Segregation Principle)
A façade is an object that provides a 
simplified interface to a larger body of 
code… 
http://en.wikipedia.org/wiki/Facade_pattern
No client should be forced to depend on 
methods that it does not use 
http://en.wikipedia.org/wiki/Interface_segregation_principle
Current Adapter 
• Exposes interface that we want 
• Exposes all functionality of the source
Worst Case Scenario 
• The public surface area is *HUGE* 
• Each exposed part (not method/property) is a 
potential point of change 
• Assume 1 parameter and 1 return type for 123 
methods == 369 possibly points of change
ISP 
• Simply don’t implement the unneeded public constructs on 
your adapter 
• Turns the adapter into a façade
Problem solved… 
Technical details of communication are pretty well 
encapsulated 
Interface changes are isolated and controllable 
Technical construct changes are isolated and 
controllable 
Source interface is limited to only the pieces that are 
needed
The Journey 
• Identify the risky dependency 
• Use a proxy to abstract connectivity details 
• Use an adapter to abstract the data constructs 
• Implement ISP via a façade to limit the surface area
Your Code 
Outside Your 
Control 
Tilemahos Efthimladis 
https://www.flickr.com/photos/telemax/6032760593
Thank you 
Donald Belcham 
@dbelcham 
donald.Belcham@igloocoder.com

More Related Content

What's hot

Applications Performance Monitoring with Applications Manager part 1
Applications Performance Monitoring with Applications Manager part 1Applications Performance Monitoring with Applications Manager part 1
Applications Performance Monitoring with Applications Manager part 1ManageEngine, Zoho Corporation
 
World's Largest Space Research Organization Implements OpManager Plus
World's Largest Space Research Organization Implements OpManager PlusWorld's Largest Space Research Organization Implements OpManager Plus
World's Largest Space Research Organization Implements OpManager PlusManageEngine, Zoho Corporation
 
3 tierarchitecture-091103063446-phpapp01
3 tierarchitecture-091103063446-phpapp013 tierarchitecture-091103063446-phpapp01
3 tierarchitecture-091103063446-phpapp01asif khan
 
Restricted routing infrastructures PPT
Restricted routing infrastructures PPTRestricted routing infrastructures PPT
Restricted routing infrastructures PPTSai Charan
 
Retail conglomerate in Latin America monitors 8000+ app components with Appli...
Retail conglomerate in Latin America monitors 8000+ app components with Appli...Retail conglomerate in Latin America monitors 8000+ app components with Appli...
Retail conglomerate in Latin America monitors 8000+ app components with Appli...ManageEngine, Zoho Corporation
 
Server and application monitoring webinars [Applications Manager] - Part 2
Server and application monitoring webinars [Applications Manager] - Part 2Server and application monitoring webinars [Applications Manager] - Part 2
Server and application monitoring webinars [Applications Manager] - Part 2ManageEngine, Zoho Corporation
 
Server and application monitoring webinars [Applications Manager] - Part 3
Server and application monitoring webinars [Applications Manager] - Part 3Server and application monitoring webinars [Applications Manager] - Part 3
Server and application monitoring webinars [Applications Manager] - Part 3ManageEngine, Zoho Corporation
 
OpStor - A multi vendor storage resource management and capacity forecasting ...
OpStor - A multi vendor storage resource management and capacity forecasting ...OpStor - A multi vendor storage resource management and capacity forecasting ...
OpStor - A multi vendor storage resource management and capacity forecasting ...ME_OpStor
 
Automation Keys: What They Are and Why You Should Use Them
Automation Keys: What They Are and Why You Should Use ThemAutomation Keys: What They Are and Why You Should Use Them
Automation Keys: What They Are and Why You Should Use ThemSafe Software
 
Software (Application and System Software)
Software (Application and System Software)Software (Application and System Software)
Software (Application and System Software)Project Student
 
Powering front end apps with NServiceBus
Powering front end apps with NServiceBusPowering front end apps with NServiceBus
Powering front end apps with NServiceBusBritt King
 
Monitoring your physical, virtual and cloud infrastructure with Applications ...
Monitoring your physical, virtual and cloud infrastructure with Applications ...Monitoring your physical, virtual and cloud infrastructure with Applications ...
Monitoring your physical, virtual and cloud infrastructure with Applications ...ManageEngine, Zoho Corporation
 
Software test engineer
Software test engineerSoftware test engineer
Software test engineerAbdul Riyaz
 
Dashboards, widgets, business views &amp; 3D-data centre
Dashboards, widgets, business views &amp; 3D-data centreDashboards, widgets, business views &amp; 3D-data centre
Dashboards, widgets, business views &amp; 3D-data centreManageEngine, Zoho Corporation
 

What's hot (20)

Applications Performance Monitoring with Applications Manager part 1
Applications Performance Monitoring with Applications Manager part 1Applications Performance Monitoring with Applications Manager part 1
Applications Performance Monitoring with Applications Manager part 1
 
World's Largest Space Research Organization Implements OpManager Plus
World's Largest Space Research Organization Implements OpManager PlusWorld's Largest Space Research Organization Implements OpManager Plus
World's Largest Space Research Organization Implements OpManager Plus
 
Lab1
Lab1Lab1
Lab1
 
3 tierarchitecture-091103063446-phpapp01
3 tierarchitecture-091103063446-phpapp013 tierarchitecture-091103063446-phpapp01
3 tierarchitecture-091103063446-phpapp01
 
Restricted routing infrastructures PPT
Restricted routing infrastructures PPTRestricted routing infrastructures PPT
Restricted routing infrastructures PPT
 
5 Ways NCM Can Save You From A Disaster
5 Ways NCM Can Save You From A Disaster5 Ways NCM Can Save You From A Disaster
5 Ways NCM Can Save You From A Disaster
 
Exelysis Contact Center
Exelysis Contact CenterExelysis Contact Center
Exelysis Contact Center
 
Retail conglomerate in Latin America monitors 8000+ app components with Appli...
Retail conglomerate in Latin America monitors 8000+ app components with Appli...Retail conglomerate in Latin America monitors 8000+ app components with Appli...
Retail conglomerate in Latin America monitors 8000+ app components with Appli...
 
Server and application monitoring webinars [Applications Manager] - Part 2
Server and application monitoring webinars [Applications Manager] - Part 2Server and application monitoring webinars [Applications Manager] - Part 2
Server and application monitoring webinars [Applications Manager] - Part 2
 
Server and application monitoring webinars [Applications Manager] - Part 3
Server and application monitoring webinars [Applications Manager] - Part 3Server and application monitoring webinars [Applications Manager] - Part 3
Server and application monitoring webinars [Applications Manager] - Part 3
 
IT Operations Management with OpManager
IT Operations Management with OpManagerIT Operations Management with OpManager
IT Operations Management with OpManager
 
Network Configuration Management - Mumbai Seminar
Network Configuration Management - Mumbai SeminarNetwork Configuration Management - Mumbai Seminar
Network Configuration Management - Mumbai Seminar
 
OpStor - A multi vendor storage resource management and capacity forecasting ...
OpStor - A multi vendor storage resource management and capacity forecasting ...OpStor - A multi vendor storage resource management and capacity forecasting ...
OpStor - A multi vendor storage resource management and capacity forecasting ...
 
Automation Keys: What They Are and Why You Should Use Them
Automation Keys: What They Are and Why You Should Use ThemAutomation Keys: What They Are and Why You Should Use Them
Automation Keys: What They Are and Why You Should Use Them
 
Software (Application and System Software)
Software (Application and System Software)Software (Application and System Software)
Software (Application and System Software)
 
Powering front end apps with NServiceBus
Powering front end apps with NServiceBusPowering front end apps with NServiceBus
Powering front end apps with NServiceBus
 
Monitoring your physical, virtual and cloud infrastructure with Applications ...
Monitoring your physical, virtual and cloud infrastructure with Applications ...Monitoring your physical, virtual and cloud infrastructure with Applications ...
Monitoring your physical, virtual and cloud infrastructure with Applications ...
 
Software test engineer
Software test engineerSoftware test engineer
Software test engineer
 
Dashboards, widgets, business views &amp; 3D-data centre
Dashboards, widgets, business views &amp; 3D-data centreDashboards, widgets, business views &amp; 3D-data centre
Dashboards, widgets, business views &amp; 3D-data centre
 
Simplifying IT operations manament with OpManager
Simplifying IT operations manament with OpManagerSimplifying IT operations manament with OpManager
Simplifying IT operations manament with OpManager
 

Viewers also liked

Is There Room for Craftsmanship in Software Development
Is There Room for Craftsmanship in Software DevelopmentIs There Room for Craftsmanship in Software Development
Is There Room for Craftsmanship in Software DevelopmentDonald Belcham
 
Source Control Abominations
Source Control AbominationsSource Control Abominations
Source Control AbominationsDonald Belcham
 
Microservices: The Nitty Gritty
Microservices: The Nitty GrittyMicroservices: The Nitty Gritty
Microservices: The Nitty GrittyDonald Belcham
 
Microservices: A Gentle Introduction
Microservices: A Gentle IntroductionMicroservices: A Gentle Introduction
Microservices: A Gentle IntroductionDonald Belcham
 

Viewers also liked (6)

Is There Room for Craftsmanship in Software Development
Is There Room for Craftsmanship in Software DevelopmentIs There Room for Craftsmanship in Software Development
Is There Room for Craftsmanship in Software Development
 
Source Control Abominations
Source Control AbominationsSource Control Abominations
Source Control Abominations
 
Intro To AOP
Intro To AOPIntro To AOP
Intro To AOP
 
AOP & Patterns
AOP & PatternsAOP & Patterns
AOP & Patterns
 
Microservices: The Nitty Gritty
Microservices: The Nitty GrittyMicroservices: The Nitty Gritty
Microservices: The Nitty Gritty
 
Microservices: A Gentle Introduction
Microservices: A Gentle IntroductionMicroservices: A Gentle Introduction
Microservices: A Gentle Introduction
 

Similar to Reducing External Risk

What’s new in Rational collaborative lifecycle management 2011?
What’s new in Rational collaborative lifecycle management 2011?What’s new in Rational collaborative lifecycle management 2011?
What’s new in Rational collaborative lifecycle management 2011?IBM Danmark
 
Crafted Design - Sandro Mancuso
Crafted Design - Sandro MancusoCrafted Design - Sandro Mancuso
Crafted Design - Sandro MancusoJAXLondon2014
 
Software Architecture - All you need to know
Software Architecture - All you need to knowSoftware Architecture - All you need to know
Software Architecture - All you need to knowVincent Composieux
 
Unit 2 computer software
Unit 2 computer softwareUnit 2 computer software
Unit 2 computer softwareHardik Patel
 
Bba i-introduction to computer-u-2- application and system software
Bba  i-introduction to computer-u-2- application and system softwareBba  i-introduction to computer-u-2- application and system software
Bba i-introduction to computer-u-2- application and system softwareRai University
 
Mca i-fundamental of computer-u-2- application and system software
Mca  i-fundamental of  computer-u-2- application and system softwareMca  i-fundamental of  computer-u-2- application and system software
Mca i-fundamental of computer-u-2- application and system softwareRai University
 
Bsc cs 1 fit u-2 application and system software
Bsc cs 1 fit u-2 application and system softwareBsc cs 1 fit u-2 application and system software
Bsc cs 1 fit u-2 application and system softwareRai University
 
Bca i-fundamental of computer-u-2- application and system software
Bca  i-fundamental of  computer-u-2- application and system softwareBca  i-fundamental of  computer-u-2- application and system software
Bca i-fundamental of computer-u-2- application and system softwareRai University
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptxtaxegap762
 
Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...Design World
 
Initial Architectural Design (Game Architecture)
Initial Architectural Design (Game Architecture)Initial Architectural Design (Game Architecture)
Initial Architectural Design (Game Architecture)Rajkumar Pawar
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationXPDays
 
Automate and customise application services and deployment
Automate and customise application services and deploymentAutomate and customise application services and deployment
Automate and customise application services and deploymentF5NetworksAPJ
 
Automate and customise application services and deployment
Automate and customise application services and deploymentAutomate and customise application services and deployment
Automate and customise application services and deploymentChristina Hoh
 
MMS2011_BC34_Plas_Final
MMS2011_BC34_Plas_FinalMMS2011_BC34_Plas_Final
MMS2011_BC34_Plas_Finalmentvanderplas
 
Remote Admittance
Remote AdmittanceRemote Admittance
Remote AdmittanceAjit Yadav
 

Similar to Reducing External Risk (20)

Thick client application security assessment
Thick client  application security assessmentThick client  application security assessment
Thick client application security assessment
 
What’s new in Rational collaborative lifecycle management 2011?
What’s new in Rational collaborative lifecycle management 2011?What’s new in Rational collaborative lifecycle management 2011?
What’s new in Rational collaborative lifecycle management 2011?
 
Crafted Design - Sandro Mancuso
Crafted Design - Sandro MancusoCrafted Design - Sandro Mancuso
Crafted Design - Sandro Mancuso
 
Software Architecture - All you need to know
Software Architecture - All you need to knowSoftware Architecture - All you need to know
Software Architecture - All you need to know
 
Unit 2 computer software
Unit 2 computer softwareUnit 2 computer software
Unit 2 computer software
 
Bba i-introduction to computer-u-2- application and system software
Bba  i-introduction to computer-u-2- application and system softwareBba  i-introduction to computer-u-2- application and system software
Bba i-introduction to computer-u-2- application and system software
 
CNS Presentation
CNS PresentationCNS Presentation
CNS Presentation
 
Mca i-fundamental of computer-u-2- application and system software
Mca  i-fundamental of  computer-u-2- application and system softwareMca  i-fundamental of  computer-u-2- application and system software
Mca i-fundamental of computer-u-2- application and system software
 
Bsc cs 1 fit u-2 application and system software
Bsc cs 1 fit u-2 application and system softwareBsc cs 1 fit u-2 application and system software
Bsc cs 1 fit u-2 application and system software
 
Bca i-fundamental of computer-u-2- application and system software
Bca  i-fundamental of  computer-u-2- application and system softwareBca  i-fundamental of  computer-u-2- application and system software
Bca i-fundamental of computer-u-2- application and system software
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...
 
Initial Architectural Design (Game Architecture)
Initial Architectural Design (Game Architecture)Initial Architectural Design (Game Architecture)
Initial Architectural Design (Game Architecture)
 
12-Factor Apps
12-Factor Apps12-Factor Apps
12-Factor Apps
 
Bfc Presentation
Bfc PresentationBfc Presentation
Bfc Presentation
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Automate and customise application services and deployment
Automate and customise application services and deploymentAutomate and customise application services and deployment
Automate and customise application services and deployment
 
Automate and customise application services and deployment
Automate and customise application services and deploymentAutomate and customise application services and deployment
Automate and customise application services and deployment
 
MMS2011_BC34_Plas_Final
MMS2011_BC34_Plas_FinalMMS2011_BC34_Plas_Final
MMS2011_BC34_Plas_Final
 
Remote Admittance
Remote AdmittanceRemote Admittance
Remote Admittance
 

More from Donald Belcham

Introduction to Messaging
Introduction to MessagingIntroduction to Messaging
Introduction to MessagingDonald Belcham
 
Advanced messaging patterns
Advanced messaging patternsAdvanced messaging patterns
Advanced messaging patternsDonald Belcham
 
Performance Tuning in the Trenches
Performance Tuning in the TrenchesPerformance Tuning in the Trenches
Performance Tuning in the TrenchesDonald Belcham
 
Reliability and Resilience
Reliability and ResilienceReliability and Resilience
Reliability and ResilienceDonald Belcham
 
Reliability and Reslience
Reliability and ReslienceReliability and Reslience
Reliability and ReslienceDonald Belcham
 
Design patterns you didn't know about
Design patterns you didn't know aboutDesign patterns you didn't know about
Design patterns you didn't know aboutDonald Belcham
 
Programming Closer to the Iron
Programming Closer to the IronProgramming Closer to the Iron
Programming Closer to the IronDonald Belcham
 
Taming Brownfield Codebases with AOP
Taming Brownfield Codebases with AOPTaming Brownfield Codebases with AOP
Taming Brownfield Codebases with AOPDonald Belcham
 
Domain Driven Design Primer
Domain Driven Design PrimerDomain Driven Design Primer
Domain Driven Design PrimerDonald Belcham
 
The Dark Side of Code Metrics
The Dark Side of Code MetricsThe Dark Side of Code Metrics
The Dark Side of Code MetricsDonald Belcham
 

More from Donald Belcham (14)

Introduction to Messaging
Introduction to MessagingIntroduction to Messaging
Introduction to Messaging
 
Advanced messaging patterns
Advanced messaging patternsAdvanced messaging patterns
Advanced messaging patterns
 
Performance Tuning in the Trenches
Performance Tuning in the TrenchesPerformance Tuning in the Trenches
Performance Tuning in the Trenches
 
Reliability and Resilience
Reliability and ResilienceReliability and Resilience
Reliability and Resilience
 
Reliability and Reslience
Reliability and ReslienceReliability and Reslience
Reliability and Reslience
 
Introduction To AOP
Introduction To AOPIntroduction To AOP
Introduction To AOP
 
Design patterns you didn't know about
Design patterns you didn't know aboutDesign patterns you didn't know about
Design patterns you didn't know about
 
Programming Closer to the Iron
Programming Closer to the IronProgramming Closer to the Iron
Programming Closer to the Iron
 
Taming Brownfield Codebases with AOP
Taming Brownfield Codebases with AOPTaming Brownfield Codebases with AOP
Taming Brownfield Codebases with AOP
 
Domain Driven Design Primer
Domain Driven Design PrimerDomain Driven Design Primer
Domain Driven Design Primer
 
Hacking Hardware
Hacking HardwareHacking Hardware
Hacking Hardware
 
Advanced AOP
Advanced AOPAdvanced AOP
Advanced AOP
 
The Dark Side of Code Metrics
The Dark Side of Code MetricsThe Dark Side of Code Metrics
The Dark Side of Code Metrics
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 

Recently uploaded

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 

Recently uploaded (20)

Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 

Reducing External Risk

  • 1. Thank you to our Sponsors Media Sponsor:
  • 2. Reducing External Risks How To Keep Other Software From Messing With Yours
  • 3. External Risks Any system that you rely on which will potentially have a negative impact on you when it changes
  • 4. Examples • Web based asmx/svc/RESTful endpoints • Internally hosted 3rd party applications • User Controls • Databases • File System
  • 5. Zero Control • Cloud based service endpoint/api
  • 6. Limited Influence • 3rd party control suite • Enterprise message queue (software or message content) • Internally installed 3rd party application/services
  • 7. Perceived Influence • Internally created service endpoint/api that doesn’t belong to your team • Internally created UI control suite • Internally installed 3rd party application/services • Multi-application database • Computer file system
  • 8. External Little influence over what changes are made Some influence over when changes are made Internal > influence if it belongs to your project < influence if it is cross project cross project == 3rd party
  • 10. Don’t fear change – embrace it Anthony J D’Angelo
  • 11. Don’t fear change – limit its surface area
  • 12. Don’t fear change – control it’s impact
  • 13. Limiting Surface Area • Rooted in Object Oriented Programming • Based on known design patterns • Can be implemented by any team and in any language
  • 14. Proxy
  • 15. A proxy, in its most general form, is a class functioning as an interface to something else. http://en.wikipedia.org/wiki/Proxy_pattern
  • 16. Add Service Reference http://wsf.cdyne.com/WeatherWS/Weather.asmx
  • 18. …and this is good….right? • No low level communication code • Generates all the constructs you may ever need • Its repeatable
  • 20. Update Everywhere In Your Application
  • 21.
  • 22. Problem solved… Technical details of communication are pretty well encapsulated Interface changes are isolated and controllable Technical construct changes are isolated and controllable Source interface is limited to only the pieces that are needed
  • 24. It (adapter pattern) is often used to make existing classes work with others without modifying their source code http://en.wikipedia.org/wiki/Adapter_pattern
  • 25. Some Web Service Your application code Adapter
  • 26. Adapt the Proxy • Translate the input parameters and return values • Convert the input and return structures
  • 27. Parameters and Return Values On the generated proxy On the adapter
  • 28. Parameters and Return Structures
  • 29. Some Web Service Your application code Adapter
  • 30. Scope of Change • If its on the source you adapt it • True adapter will include all endpoints offered by source
  • 31. Problem solved… Technical details of communication are pretty well encapsulated Interface changes are isolated and controllable Technical construct changes are isolated and controllable Source interface is limited to only the pieces that are needed
  • 32. Façade (and the Interface Segregation Principle)
  • 33. A façade is an object that provides a simplified interface to a larger body of code… http://en.wikipedia.org/wiki/Facade_pattern
  • 34. No client should be forced to depend on methods that it does not use http://en.wikipedia.org/wiki/Interface_segregation_principle
  • 35. Current Adapter • Exposes interface that we want • Exposes all functionality of the source
  • 36. Worst Case Scenario • The public surface area is *HUGE* • Each exposed part (not method/property) is a potential point of change • Assume 1 parameter and 1 return type for 123 methods == 369 possibly points of change
  • 37. ISP • Simply don’t implement the unneeded public constructs on your adapter • Turns the adapter into a façade
  • 38. Problem solved… Technical details of communication are pretty well encapsulated Interface changes are isolated and controllable Technical construct changes are isolated and controllable Source interface is limited to only the pieces that are needed
  • 39. The Journey • Identify the risky dependency • Use a proxy to abstract connectivity details • Use an adapter to abstract the data constructs • Implement ISP via a façade to limit the surface area
  • 40. Your Code Outside Your Control Tilemahos Efthimladis https://www.flickr.com/photos/telemax/6032760593
  • 41. Thank you Donald Belcham @dbelcham donald.Belcham@igloocoder.com