SlideShare a Scribd company logo
Summarizing ICF. . .
ICF Connector 
Bundle
ICF SPI 
(1) Built using 
ICF Connector 
Bundle
ICF SPI 
(1) Built using 
1. Connector 
2. Configuration 
3. CreateOp 
4. UpdateOp 
5. DeleteOp 
connector-framework. 
jar 
ICF Connector 
Bundle
ICF SPI 
(1) Built using 
connector-framework. 
jar 
ICF API 
connector-framework. 
jar 
Implementation Contained within 
1. Connector 
2. Configuration 
3. CreateOp 
4. UpdateOp 
5. DeleteOp 
ICF Connector 
Bundle 
connector-framework-internal. 
jar
ICF SPI 
(1) Built using 
connector-framework. 
jar 
ICF API 
connector-framework. 
jar 
Implementation Contained within 
1. Connector 
2. Configuration 
3. CreateOp 
4. UpdateOp 
5. DeleteOp 
OIM-ICF API 
Glue 
(is a layer on top of) 
ICF Connector 
Bundle 
connector-framework-internal. 
jar
ICF SPI 
(1) Built using 
connector-framework. 
jar 
ICF API 
connector-framework. 
jar 
Implementation Contained within 
1. Connector 
2. Configuration 
3. CreateOp 
4. UpdateOp 
5. DeleteOp 
OIM-ICF API 
Glue 
(is a layer on top of) 
ICF Connector 
Bundle 
connector-framework-internal. 
jar 
Contained within 
icf-oim-intg.jar
ICF SPI 
(1) Built using 
connector-framework. 
jar 
ICF API 
connector-framework. 
jar 
Implementation Contained within 
1. Connector 
2. Configuration 
3. CreateOp 
4. UpdateOp 
5. DeleteOp 
OIM-ICF API 
Glue 
(is a layer on top of) 
ICF Connector 
Bundle 
connector-framework-internal. 
jar 
(2) Invokes via Adapter Factory 
icf-oim-intg.jar 
Contained within 
OIM 
Connector
ICF SPI 
(1) Built using 
connector-framework. 
jar 
ICF API 
connector-framework. 
jar 
Uses 
Implementation Contained within 
1. Connector 
2. Configuration 
3. CreateOp 
4. UpdateOp 
5. DeleteOp 
OIM-ICF API 
Glue 
(is a layer on top of) 
ICF Connector 
Bundle 
connector-framework-internal. 
jar 
OIM 
Connector 
(2) Invokes via Adapter Factory 
icf-oim-intg.jar 
Contained within 
ICProvisioningManager 
and other classes 
Contains
(3) Invokes 
ICF SPI 
(1) Built using 
connector-framework. 
jar 
ICF API 
connector-framework. 
jar 
Uses 
Implementation Contained within 
1. Connector 
2. Configuration 
3. CreateOp 
4. UpdateOp 
5. DeleteOp 
OIM-ICF API 
Glue 
(is a layer on top of) 
ICF Connector 
Bundle 
connector-framework-internal. 
jar 
(2) Invokes via Adapter Factory 
icf-oim-intg.jar 
Contained within 
OIM 
Connector 
ICProvisioningManager 
and other classes 
Contains
(3) Invokes 
(4) Executes operation via Proxy 
ICF SPI 
(1) Built using 
connector-framework. 
jar 
ICF API 
connector-framework. 
jar 
Uses 
Implementation Contained within 
1. Connector 
2. Configuration 
3. CreateOp 
4. UpdateOp 
5. DeleteOp 
OIM-ICF API 
Glue 
(is a layer on top of) 
ICF Connector 
Bundle 
connector-framework-internal. 
jar 
(4) Picks up relevant 
(2) Invokes via Adapter Factory 
Contained within 
icf-oim-intg.jar 
OIM 
Connector 
ICProvisioningManager 
and other classes 
Contains
(3) Invokes 
(4) Executes operation via Proxy 
ICF SPI 
(1) Built using 
connector-framework. 
jar 
ICF API 
connector-framework. 
jar 
Uses 
Implementation Contained within 
1. Connector 
2. Configuration 
3. CreateOp 
4. UpdateOp 
5. DeleteOp 
OIM-ICF API 
Glue 
(is a layer on top of) 
ICF Connector 
Bundle 
connector-framework-internal. 
jar 
(4) Picks up relevant 
(2) Invokes via Adapter Factory 
Contained within 
icf-oim-intg.jar 
OIM 
Connector 
ICProvisioningManager 
and other classes 
Contains 
(5) Executes CRUD Operations on 
Target System
The gist . . . 
• Identity Connector Framework (ICF) 
– Why? Isolates a connector from its prospective consumers (provisioning tools like OIM) 
– How is this made possible? By splitting up ICF into SPI and API layers 
• Service Provider Interface (SPI) 
– Used to develop connector implementation for a specific target system 
– Decouples a connector from OIM, facilitates easier development & testing 
• Application Programming Interface (API) 
– Gateway to connector functionality – ensures that the provisioning layer remains 
shielded from SPI layer 
– Encapsulates logic to invoke connector implementation without exposing client to SPI 
details 
• OIM-ICF API Glue 
– Wrapper on top of ICF API – a convenient implementation to save us from doing all the 
hard work! 
– Set of classes which internally orchestrate calls to ICF API layer 
– Called by Adapters (process task) within OIM

More Related Content

Similar to Summarizing ICF

Best Practices for Enterprise OSGi Applications - Emily Jiang
Best Practices for Enterprise OSGi Applications - Emily JiangBest Practices for Enterprise OSGi Applications - Emily Jiang
Best Practices for Enterprise OSGi Applications - Emily Jiang
mfrancis
 
Travelling light for the long haul
Travelling light for the long haulTravelling light for the long haul
Travelling light for the long haul
Ian Robinson
 
Travelling Light for the Long Haul - Ian Robinson
Travelling Light for the Long Haul -  Ian RobinsonTravelling Light for the Long Haul -  Ian Robinson
Travelling Light for the Long Haul - Ian Robinson
mfrancis
 
Mr201307 investigation into_emet4.0_eng
Mr201307 investigation into_emet4.0_engMr201307 investigation into_emet4.0_eng
Mr201307 investigation into_emet4.0_eng
FFRI, Inc.
 
5.5.1.2 packet tracer configure ios intrusion prevention system (ips) using...
5.5.1.2 packet tracer   configure ios intrusion prevention system (ips) using...5.5.1.2 packet tracer   configure ios intrusion prevention system (ips) using...
5.5.1.2 packet tracer configure ios intrusion prevention system (ips) using...
Salem Trabelsi
 
An introduction to Symfony 2 for symfony 1 developers
An introduction to Symfony 2 for symfony 1 developersAn introduction to Symfony 2 for symfony 1 developers
An introduction to Symfony 2 for symfony 1 developers
Giorgio Cefaro
 

Similar to Summarizing ICF (20)

An Overview of the IHK/McKernel Multi-kernel Operating System
An Overview of the IHK/McKernel Multi-kernel Operating SystemAn Overview of the IHK/McKernel Multi-kernel Operating System
An Overview of the IHK/McKernel Multi-kernel Operating System
 
Best Practices for Enterprise OSGi Applications - Emily Jiang
Best Practices for Enterprise OSGi Applications - Emily JiangBest Practices for Enterprise OSGi Applications - Emily Jiang
Best Practices for Enterprise OSGi Applications - Emily Jiang
 
DEVNET-1128 Cisco Intercloud Fabric NB Api's for Business & Providers
DEVNET-1128	Cisco Intercloud Fabric NB Api's for Business & ProvidersDEVNET-1128	Cisco Intercloud Fabric NB Api's for Business & Providers
DEVNET-1128 Cisco Intercloud Fabric NB Api's for Business & Providers
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Travelling light for the long haul
Travelling light for the long haulTravelling light for the long haul
Travelling light for the long haul
 
Travelling Light for the Long Haul - Ian Robinson
Travelling Light for the Long Haul -  Ian RobinsonTravelling Light for the Long Haul -  Ian Robinson
Travelling Light for the Long Haul - Ian Robinson
 
Mr201307 investigation into_emet4.0_eng
Mr201307 investigation into_emet4.0_engMr201307 investigation into_emet4.0_eng
Mr201307 investigation into_emet4.0_eng
 
SAN_Module3_Part1_PPTs.pptx
SAN_Module3_Part1_PPTs.pptxSAN_Module3_Part1_PPTs.pptx
SAN_Module3_Part1_PPTs.pptx
 
Burp Suite Extension Development
Burp Suite Extension DevelopmentBurp Suite Extension Development
Burp Suite Extension Development
 
Module 06 (1).pdf
Module 06 (1).pdfModule 06 (1).pdf
Module 06 (1).pdf
 
A techis guide to combating bugs & poor performance in production
A techis guide to combating bugs & poor performance in productionA techis guide to combating bugs & poor performance in production
A techis guide to combating bugs & poor performance in production
 
5.5.1.2 packet tracer configure ios intrusion prevention system (ips) using...
5.5.1.2 packet tracer   configure ios intrusion prevention system (ips) using...5.5.1.2 packet tracer   configure ios intrusion prevention system (ips) using...
5.5.1.2 packet tracer configure ios intrusion prevention system (ips) using...
 
Hp fortify source code analyzer(sca)
Hp fortify source code analyzer(sca)Hp fortify source code analyzer(sca)
Hp fortify source code analyzer(sca)
 
An introduction to the Spring Framework
An introduction to the Spring FrameworkAn introduction to the Spring Framework
An introduction to the Spring Framework
 
CCNA v6.0 ITN - Chapter 02
CCNA v6.0 ITN - Chapter 02CCNA v6.0 ITN - Chapter 02
CCNA v6.0 ITN - Chapter 02
 
Beginners guide on how to start exploring IoT 2nd session
Beginners  guide on how to start exploring IoT 2nd sessionBeginners  guide on how to start exploring IoT 2nd session
Beginners guide on how to start exploring IoT 2nd session
 
An introduction to Symfony 2 for symfony 1 developers
An introduction to Symfony 2 for symfony 1 developersAn introduction to Symfony 2 for symfony 1 developers
An introduction to Symfony 2 for symfony 1 developers
 
CCA security answers chapter 2 test
CCA security answers chapter 2 testCCA security answers chapter 2 test
CCA security answers chapter 2 test
 
Symfony vs CodeIgniter
Symfony vs CodeIgniterSymfony vs CodeIgniter
Symfony vs CodeIgniter
 
When virtualization encounters afl blackhat eu2016--1.4
When virtualization encounters afl blackhat eu2016--1.4When virtualization encounters afl blackhat eu2016--1.4
When virtualization encounters afl blackhat eu2016--1.4
 

Recently uploaded

AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 

Recently uploaded (20)

AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Breaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfBreaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdf
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 

Summarizing ICF

  • 3. ICF SPI (1) Built using ICF Connector Bundle
  • 4. ICF SPI (1) Built using 1. Connector 2. Configuration 3. CreateOp 4. UpdateOp 5. DeleteOp connector-framework. jar ICF Connector Bundle
  • 5. ICF SPI (1) Built using connector-framework. jar ICF API connector-framework. jar Implementation Contained within 1. Connector 2. Configuration 3. CreateOp 4. UpdateOp 5. DeleteOp ICF Connector Bundle connector-framework-internal. jar
  • 6. ICF SPI (1) Built using connector-framework. jar ICF API connector-framework. jar Implementation Contained within 1. Connector 2. Configuration 3. CreateOp 4. UpdateOp 5. DeleteOp OIM-ICF API Glue (is a layer on top of) ICF Connector Bundle connector-framework-internal. jar
  • 7. ICF SPI (1) Built using connector-framework. jar ICF API connector-framework. jar Implementation Contained within 1. Connector 2. Configuration 3. CreateOp 4. UpdateOp 5. DeleteOp OIM-ICF API Glue (is a layer on top of) ICF Connector Bundle connector-framework-internal. jar Contained within icf-oim-intg.jar
  • 8. ICF SPI (1) Built using connector-framework. jar ICF API connector-framework. jar Implementation Contained within 1. Connector 2. Configuration 3. CreateOp 4. UpdateOp 5. DeleteOp OIM-ICF API Glue (is a layer on top of) ICF Connector Bundle connector-framework-internal. jar (2) Invokes via Adapter Factory icf-oim-intg.jar Contained within OIM Connector
  • 9. ICF SPI (1) Built using connector-framework. jar ICF API connector-framework. jar Uses Implementation Contained within 1. Connector 2. Configuration 3. CreateOp 4. UpdateOp 5. DeleteOp OIM-ICF API Glue (is a layer on top of) ICF Connector Bundle connector-framework-internal. jar OIM Connector (2) Invokes via Adapter Factory icf-oim-intg.jar Contained within ICProvisioningManager and other classes Contains
  • 10. (3) Invokes ICF SPI (1) Built using connector-framework. jar ICF API connector-framework. jar Uses Implementation Contained within 1. Connector 2. Configuration 3. CreateOp 4. UpdateOp 5. DeleteOp OIM-ICF API Glue (is a layer on top of) ICF Connector Bundle connector-framework-internal. jar (2) Invokes via Adapter Factory icf-oim-intg.jar Contained within OIM Connector ICProvisioningManager and other classes Contains
  • 11. (3) Invokes (4) Executes operation via Proxy ICF SPI (1) Built using connector-framework. jar ICF API connector-framework. jar Uses Implementation Contained within 1. Connector 2. Configuration 3. CreateOp 4. UpdateOp 5. DeleteOp OIM-ICF API Glue (is a layer on top of) ICF Connector Bundle connector-framework-internal. jar (4) Picks up relevant (2) Invokes via Adapter Factory Contained within icf-oim-intg.jar OIM Connector ICProvisioningManager and other classes Contains
  • 12. (3) Invokes (4) Executes operation via Proxy ICF SPI (1) Built using connector-framework. jar ICF API connector-framework. jar Uses Implementation Contained within 1. Connector 2. Configuration 3. CreateOp 4. UpdateOp 5. DeleteOp OIM-ICF API Glue (is a layer on top of) ICF Connector Bundle connector-framework-internal. jar (4) Picks up relevant (2) Invokes via Adapter Factory Contained within icf-oim-intg.jar OIM Connector ICProvisioningManager and other classes Contains (5) Executes CRUD Operations on Target System
  • 13. The gist . . . • Identity Connector Framework (ICF) – Why? Isolates a connector from its prospective consumers (provisioning tools like OIM) – How is this made possible? By splitting up ICF into SPI and API layers • Service Provider Interface (SPI) – Used to develop connector implementation for a specific target system – Decouples a connector from OIM, facilitates easier development & testing • Application Programming Interface (API) – Gateway to connector functionality – ensures that the provisioning layer remains shielded from SPI layer – Encapsulates logic to invoke connector implementation without exposing client to SPI details • OIM-ICF API Glue – Wrapper on top of ICF API – a convenient implementation to save us from doing all the hard work! – Set of classes which internally orchestrate calls to ICF API layer – Called by Adapters (process task) within OIM