SlideShare a Scribd company logo
1 of 6
INVERSION OF CONTROL
IN SOA
PATRICE KERREMANS
“NORMAL” WAY
I’LL GET THE STUFF AND I’LL HANDLE THINGS
CLIENT
ESB
TASK
SERVICE
ENTITY
SERVICE
ACCOUNT
ENTITY
SERVICE
BALANCE
1,12
2,11
3,6
7,10
4,5 8,9
1. retrieveBalance(IBAN)
2. retrieveBalance(IBAN)
3. retrieveBalance(IBAN)
4. retrieveBalance(IBAN)
5. return balance
6. return balance
7. retrieveAccounts(userId)
8. retrieveAccounts(userId)
9. return List<Account>
10. return List<Account>
11. do magic and return balance
12. return balance
THREEANDAHALFROSES.COM - PATRICE
INVERSION OF CONTROL (IOC) WAY
YOU GET THE STUFF AND I’LL HANDLE THINGS
CLIENT
ESB
ENTITY
SERVICE
ACCOUNT
ENTITY
SERVICE
BALANCE
TASK
SERVICE
1,8
2,3 4,5 6,7
1. retrieveBalance(IBAN)
2. retrieveAccounts(userId)
3. return accounts
4. retrieveBalance(IBAN)
5. return balance
6. doMagic(accounts, balance)
7. return balance
8. return balance
THREEANDAHALFROSES.COM - PATRICE
ABOUT IOC
WHAT PROBLEMS DOES IT TRY TO SOLVE
▸ Decoupling components and layers in the system
▸ Alleviates a component from being responsible for managing
it's dependencies
▸ Swap dependency implementations in different environments.
▸ Allows a component be tested through mocking of
dependencies.
▸ Provides a mechanism for sharing resources throughout an
application.
Stolen from here: http://www.dofactory.com/topic/1097/what-are-the-benefits-and-dangers-of-ioc-inversion-of-control.aspx
THREEANDAHALFROSES.COM - PATRICE
ABOUT IOC
BENEFITS
▸ Makes it easier to test your code. Without it, the code you
are testing is hard to isolate as it will be highly coupled to
the rest of the system and to the ESB.
▸ Useful when developing modular systems. You can replace
components without requiring recompilation.
▸ If done well, independent from runtime container (ESB in
our case)
▸ Due to less requests to the bus, less network overhead
Partially stolen from here: http://www.dofactory.com/topic/1097/what-are-the-benefits-and-dangers-of-ioc-inversion-of-control.aspx
THREEANDAHALFROSES.COM - PATRICE
ABOUT IOC
DISADVANTAGES
▸ Dependency on runtime container to wire everything
together (set-up, maintenance, may be challenging to
debug E2E)
▸ you get the input objects even if they were not needed in
the task service logic for some reason.
THREEANDAHALFROSES.COM - PATRICE

More Related Content

Similar to IOC in SOA Explained

Shangz R Brown Presentation
Shangz R Brown PresentationShangz R Brown Presentation
Shangz R Brown Presentationshangbaby
 
Cheque & Giro Process Analysis
Cheque & Giro Process AnalysisCheque & Giro Process Analysis
Cheque & Giro Process Analysisharbine
 
Ordertocashcycle 111011122119-phpapp01
Ordertocashcycle 111011122119-phpapp01Ordertocashcycle 111011122119-phpapp01
Ordertocashcycle 111011122119-phpapp01ssantosh1234
 
eFiling of Tax Audit Reports
eFiling of Tax Audit ReportseFiling of Tax Audit Reports
eFiling of Tax Audit ReportsVenugopal Gella
 
C++ Bank Account Error Fix, full code. I am using Dev-C++ to Compile.pdf
C++ Bank Account Error Fix, full code. I am using Dev-C++ to Compile.pdfC++ Bank Account Error Fix, full code. I am using Dev-C++ to Compile.pdf
C++ Bank Account Error Fix, full code. I am using Dev-C++ to Compile.pdfJUSTSTYLISH3B2MOHALI
 
Integration of payment gateways using Paypal account
Integration of payment gateways using Paypal account Integration of payment gateways using Paypal account
Integration of payment gateways using Paypal account Phenom People
 
Monetize your idea! - Pay Pal
Monetize your idea! - Pay PalMonetize your idea! - Pay Pal
Monetize your idea! - Pay PalDroidcon Spain
 
Oracle Order To Cash Accounting Made Easy
Oracle Order To Cash Accounting   Made EasyOracle Order To Cash Accounting   Made Easy
Oracle Order To Cash Accounting Made Easybrijeshbharat
 
Oracle cash management_Anne
Oracle cash management_AnneOracle cash management_Anne
Oracle cash management_Anneanuraj-sandhu
 
Invoicing app on ribily
Invoicing app on ribilyInvoicing app on ribily
Invoicing app on ribilyRibily
 
Cash Management.pptx
Cash Management.pptxCash Management.pptx
Cash Management.pptxUmairIlyas21
 
460970787-93626369-Oracle-Accounts-Receivables-1-ppt.ppt
460970787-93626369-Oracle-Accounts-Receivables-1-ppt.ppt460970787-93626369-Oracle-Accounts-Receivables-1-ppt.ppt
460970787-93626369-Oracle-Accounts-Receivables-1-ppt.pptsporto2013
 
Accounting principles weygandt 11th edition solutions manual
Accounting principles weygandt 11th edition solutions manual Accounting principles weygandt 11th edition solutions manual
Accounting principles weygandt 11th edition solutions manual abb183n
 
Endeca information discovery for Oracle Receivables ( EBS)
Endeca information discovery for Oracle Receivables ( EBS)Endeca information discovery for Oracle Receivables ( EBS)
Endeca information discovery for Oracle Receivables ( EBS)Bizinsight Consulting Inc
 
PayPal Dev Con 2009 Driving Business
PayPal Dev Con 2009 Driving BusinessPayPal Dev Con 2009 Driving Business
PayPal Dev Con 2009 Driving BusinessAduci
 

Similar to IOC in SOA Explained (20)

Shangz R Brown Presentation
Shangz R Brown PresentationShangz R Brown Presentation
Shangz R Brown Presentation
 
Cheque & Giro Process Analysis
Cheque & Giro Process AnalysisCheque & Giro Process Analysis
Cheque & Giro Process Analysis
 
Ordertocashcycle 111011122119-phpapp01
Ordertocashcycle 111011122119-phpapp01Ordertocashcycle 111011122119-phpapp01
Ordertocashcycle 111011122119-phpapp01
 
eFiling of Tax Audit Reports
eFiling of Tax Audit ReportseFiling of Tax Audit Reports
eFiling of Tax Audit Reports
 
C++ Bank Account Error Fix, full code. I am using Dev-C++ to Compile.pdf
C++ Bank Account Error Fix, full code. I am using Dev-C++ to Compile.pdfC++ Bank Account Error Fix, full code. I am using Dev-C++ to Compile.pdf
C++ Bank Account Error Fix, full code. I am using Dev-C++ to Compile.pdf
 
Integration of payment gateways using Paypal account
Integration of payment gateways using Paypal account Integration of payment gateways using Paypal account
Integration of payment gateways using Paypal account
 
Monetize your idea! - Pay Pal
Monetize your idea! - Pay PalMonetize your idea! - Pay Pal
Monetize your idea! - Pay Pal
 
Oracle Order To Cash Accounting Made Easy
Oracle Order To Cash Accounting   Made EasyOracle Order To Cash Accounting   Made Easy
Oracle Order To Cash Accounting Made Easy
 
Oracle cash management_Anne
Oracle cash management_AnneOracle cash management_Anne
Oracle cash management_Anne
 
Invoicing app on ribily
Invoicing app on ribilyInvoicing app on ribily
Invoicing app on ribily
 
Accounting
Accounting Accounting
Accounting
 
FI-Bank.ppt
FI-Bank.pptFI-Bank.ppt
FI-Bank.ppt
 
Cash Management.pptx
Cash Management.pptxCash Management.pptx
Cash Management.pptx
 
Order to cash cycle
Order to cash cycleOrder to cash cycle
Order to cash cycle
 
SQL Server 2008 Portfolio
SQL Server 2008 PortfolioSQL Server 2008 Portfolio
SQL Server 2008 Portfolio
 
460970787-93626369-Oracle-Accounts-Receivables-1-ppt.ppt
460970787-93626369-Oracle-Accounts-Receivables-1-ppt.ppt460970787-93626369-Oracle-Accounts-Receivables-1-ppt.ppt
460970787-93626369-Oracle-Accounts-Receivables-1-ppt.ppt
 
Accounting principles weygandt 11th edition solutions manual
Accounting principles weygandt 11th edition solutions manual Accounting principles weygandt 11th edition solutions manual
Accounting principles weygandt 11th edition solutions manual
 
Banking Database
Banking DatabaseBanking Database
Banking Database
 
Endeca information discovery for Oracle Receivables ( EBS)
Endeca information discovery for Oracle Receivables ( EBS)Endeca information discovery for Oracle Receivables ( EBS)
Endeca information discovery for Oracle Receivables ( EBS)
 
PayPal Dev Con 2009 Driving Business
PayPal Dev Con 2009 Driving BusinessPayPal Dev Con 2009 Driving Business
PayPal Dev Con 2009 Driving Business
 

More from Patrice Kerremans

Enhancing Enterprise Architecture with Artificial Intelligence
Enhancing Enterprise Architecture with Artificial IntelligenceEnhancing Enterprise Architecture with Artificial Intelligence
Enhancing Enterprise Architecture with Artificial IntelligencePatrice Kerremans
 
Cloud Spotting 2017: An overview of cloud computing
Cloud Spotting 2017: An overview of cloud computingCloud Spotting 2017: An overview of cloud computing
Cloud Spotting 2017: An overview of cloud computingPatrice Kerremans
 
Routeyou mobile presentation
Routeyou mobile presentationRouteyou mobile presentation
Routeyou mobile presentationPatrice Kerremans
 
Call for Gunslingers to tame Mobzilla
Call for Gunslingers to tame MobzillaCall for Gunslingers to tame Mobzilla
Call for Gunslingers to tame MobzillaPatrice Kerremans
 
Momads explained @ Brave New Radio
Momads explained @ Brave New RadioMomads explained @ Brave New Radio
Momads explained @ Brave New RadioPatrice Kerremans
 
12 Topics Of A Good Community
12 Topics Of A Good Community12 Topics Of A Good Community
12 Topics Of A Good CommunityPatrice Kerremans
 

More from Patrice Kerremans (10)

Enhancing Enterprise Architecture with Artificial Intelligence
Enhancing Enterprise Architecture with Artificial IntelligenceEnhancing Enterprise Architecture with Artificial Intelligence
Enhancing Enterprise Architecture with Artificial Intelligence
 
Cloud Spotting 2017: An overview of cloud computing
Cloud Spotting 2017: An overview of cloud computingCloud Spotting 2017: An overview of cloud computing
Cloud Spotting 2017: An overview of cloud computing
 
Blockchain for Notaries
Blockchain for NotariesBlockchain for Notaries
Blockchain for Notaries
 
Internet of Things (2015)
Internet of Things (2015)Internet of Things (2015)
Internet of Things (2015)
 
Internet of things
Internet of thingsInternet of things
Internet of things
 
Routeyou mobile presentation
Routeyou mobile presentationRouteyou mobile presentation
Routeyou mobile presentation
 
Call for Gunslingers to tame Mobzilla
Call for Gunslingers to tame MobzillaCall for Gunslingers to tame Mobzilla
Call for Gunslingers to tame Mobzilla
 
Momads explained @ Brave New Radio
Momads explained @ Brave New RadioMomads explained @ Brave New Radio
Momads explained @ Brave New Radio
 
12 Topics Of A Good Community
12 Topics Of A Good Community12 Topics Of A Good Community
12 Topics Of A Good Community
 
Trends in mobiel internet
Trends in mobiel internetTrends in mobiel internet
Trends in mobiel internet
 

Recently uploaded

Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
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
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 

Recently uploaded (20)

Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
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...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 

IOC in SOA Explained

  • 1. INVERSION OF CONTROL IN SOA PATRICE KERREMANS
  • 2. “NORMAL” WAY I’LL GET THE STUFF AND I’LL HANDLE THINGS CLIENT ESB TASK SERVICE ENTITY SERVICE ACCOUNT ENTITY SERVICE BALANCE 1,12 2,11 3,6 7,10 4,5 8,9 1. retrieveBalance(IBAN) 2. retrieveBalance(IBAN) 3. retrieveBalance(IBAN) 4. retrieveBalance(IBAN) 5. return balance 6. return balance 7. retrieveAccounts(userId) 8. retrieveAccounts(userId) 9. return List<Account> 10. return List<Account> 11. do magic and return balance 12. return balance THREEANDAHALFROSES.COM - PATRICE
  • 3. INVERSION OF CONTROL (IOC) WAY YOU GET THE STUFF AND I’LL HANDLE THINGS CLIENT ESB ENTITY SERVICE ACCOUNT ENTITY SERVICE BALANCE TASK SERVICE 1,8 2,3 4,5 6,7 1. retrieveBalance(IBAN) 2. retrieveAccounts(userId) 3. return accounts 4. retrieveBalance(IBAN) 5. return balance 6. doMagic(accounts, balance) 7. return balance 8. return balance THREEANDAHALFROSES.COM - PATRICE
  • 4. ABOUT IOC WHAT PROBLEMS DOES IT TRY TO SOLVE ▸ Decoupling components and layers in the system ▸ Alleviates a component from being responsible for managing it's dependencies ▸ Swap dependency implementations in different environments. ▸ Allows a component be tested through mocking of dependencies. ▸ Provides a mechanism for sharing resources throughout an application. Stolen from here: http://www.dofactory.com/topic/1097/what-are-the-benefits-and-dangers-of-ioc-inversion-of-control.aspx THREEANDAHALFROSES.COM - PATRICE
  • 5. ABOUT IOC BENEFITS ▸ Makes it easier to test your code. Without it, the code you are testing is hard to isolate as it will be highly coupled to the rest of the system and to the ESB. ▸ Useful when developing modular systems. You can replace components without requiring recompilation. ▸ If done well, independent from runtime container (ESB in our case) ▸ Due to less requests to the bus, less network overhead Partially stolen from here: http://www.dofactory.com/topic/1097/what-are-the-benefits-and-dangers-of-ioc-inversion-of-control.aspx THREEANDAHALFROSES.COM - PATRICE
  • 6. ABOUT IOC DISADVANTAGES ▸ Dependency on runtime container to wire everything together (set-up, maintenance, may be challenging to debug E2E) ▸ you get the input objects even if they were not needed in the task service logic for some reason. THREEANDAHALFROSES.COM - PATRICE