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 Inversion of Control for SOA

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 Inversion of Control for SOA (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

Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
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
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
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
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
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
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
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
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...software pro Development
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 

Recently uploaded (20)

Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
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
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
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 🔝✔️✔️
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
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...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
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
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 

Inversion of Control for SOA

  • 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