SlideShare uma empresa Scribd logo
1 de 11
Installation plan
Tomas Drencak
The problem
● Create installation plan for customer
requesting Cable TV with Internet
● Order contains:
– Technology (optic, regular)
– TV/Internet/Phone
– Address
– Etc...
The solution
● Backward composition of directed acyclic
graph
● Root node is customer order
● Each other node is installation instruction
● Edge means that parent can't be executed
before child
Example #1
Order
DSL
entry point
Configure
DSL modem
Wire
Segment 1
Wire
Segment 2
Composition
● Backward composition
● Each node is of certain type and can connect
to only certain nodes
● Nodes types are stored in DB
● Evaluate which nodes can connect to the node
● Node instances are instantiated from node
types in runtime
Example #2
● Algorithm:
Incomplete = [order_node]
While not incomplete.is_empty():
for node in incomplete:
node_types = db.find_suitable_node_types(node)
For child_type in node_types:
If child_type.can_expand(node):
child_node = child_type.expand(node)
Incomplete.add(child_node)
If node.is_complete():
Incomplete.remove(node)
Database
parent_type type Condition
Order DslEntryPoint Parent.technology == 'DSL'
DslEntryPoint OpticFibre parent.technology == 'DSL' &&
parent.order.medium = 'optic'
DslEntryPoint Modem
Configuration
Parent.technology == 'DSL' &&
Exists('OpticFibre', 'EntryPoint')
Example of node
class DslEntryPoint:
def can_expand(node):
return evaluate(this.condition, parent=node)
def expand(parent):
child = new DslEntryPoint(parent.address)
parent.add_child(child)
return child
Graph prunning
Summary
● Backward graph composition
● Graph prunning (inverse)
● Condition evaluation
● Polymorphism/interfaces
Thank you!
Any questions?

Mais conteúdo relacionado

Semelhante a Installation plan

Navodaya R Experience resume
Navodaya R Experience resumeNavodaya R Experience resume
Navodaya R Experience resume
Navodaya R
 
E. Saif Ababseh CV
E. Saif Ababseh CVE. Saif Ababseh CV
E. Saif Ababseh CV
Ababseh Saif
 
digital camera image capturing technique
digital camera image capturing techniquedigital camera image capturing technique
digital camera image capturing technique
Sindhu Mani
 
Intro to GPGPU Programming with Cuda
Intro to GPGPU Programming with CudaIntro to GPGPU Programming with Cuda
Intro to GPGPU Programming with Cuda
Rob Gillen
 
Resume_8years-Exp_Embedded
Resume_8years-Exp_EmbeddedResume_8years-Exp_Embedded
Resume_8years-Exp_Embedded
Vijayraj Hada
 
Nada_CV_no_table_boarder
Nada_CV_no_table_boarderNada_CV_no_table_boarder
Nada_CV_no_table_boarder
nada abdellatif
 

Semelhante a Installation plan (20)

Basic Understanding about TCP/IP Addressing system
Basic Understanding about TCP/IP Addressing systemBasic Understanding about TCP/IP Addressing system
Basic Understanding about TCP/IP Addressing system
 
Introduction to om ne t++
Introduction to om ne t++Introduction to om ne t++
Introduction to om ne t++
 
Overview
OverviewOverview
Overview
 
Navodaya R Experience resume
Navodaya R Experience resumeNavodaya R Experience resume
Navodaya R Experience resume
 
Networking in Telecommunication (signalling, tcp, ucp, ss7, sctp, sigtran)
Networking in Telecommunication (signalling, tcp, ucp, ss7, sctp, sigtran)Networking in Telecommunication (signalling, tcp, ucp, ss7, sctp, sigtran)
Networking in Telecommunication (signalling, tcp, ucp, ss7, sctp, sigtran)
 
How to Store and Visualize CAN Bus Telematic Data with InfluxDB Cloud and Gra...
How to Store and Visualize CAN Bus Telematic Data with InfluxDB Cloud and Gra...How to Store and Visualize CAN Bus Telematic Data with InfluxDB Cloud and Gra...
How to Store and Visualize CAN Bus Telematic Data with InfluxDB Cloud and Gra...
 
Informix Expedition Through Connectivity
Informix Expedition Through ConnectivityInformix Expedition Through Connectivity
Informix Expedition Through Connectivity
 
CISSP Week 7
CISSP Week 7CISSP Week 7
CISSP Week 7
 
Resume_new1_may
Resume_new1_mayResume_new1_may
Resume_new1_may
 
E. Saif Ababseh CV
E. Saif Ababseh CVE. Saif Ababseh CV
E. Saif Ababseh CV
 
technical report presents a comprehensive study. .pptx
technical report presents a comprehensive study. .pptxtechnical report presents a comprehensive study. .pptx
technical report presents a comprehensive study. .pptx
 
What's Inside Cloudflare Mobile SDK
What's Inside Cloudflare Mobile SDKWhat's Inside Cloudflare Mobile SDK
What's Inside Cloudflare Mobile SDK
 
digital camera image capturing technique
digital camera image capturing techniquedigital camera image capturing technique
digital camera image capturing technique
 
Intro to GPGPU Programming with Cuda
Intro to GPGPU Programming with CudaIntro to GPGPU Programming with Cuda
Intro to GPGPU Programming with Cuda
 
Presentation Cable Project Cad Adc
Presentation Cable Project Cad AdcPresentation Cable Project Cad Adc
Presentation Cable Project Cad Adc
 
Resume_8years-Exp_Embedded
Resume_8years-Exp_EmbeddedResume_8years-Exp_Embedded
Resume_8years-Exp_Embedded
 
Bangladesh Computer Council Networking Project
Bangladesh Computer Council Networking ProjectBangladesh Computer Council Networking Project
Bangladesh Computer Council Networking Project
 
Node-RED
Node-REDNode-RED
Node-RED
 
CS4961-L9.ppt
CS4961-L9.pptCS4961-L9.ppt
CS4961-L9.ppt
 
Nada_CV_no_table_boarder
Nada_CV_no_table_boarderNada_CV_no_table_boarder
Nada_CV_no_table_boarder
 

Último

TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 

Último (20)

Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 

Installation plan

  • 2. The problem ● Create installation plan for customer requesting Cable TV with Internet ● Order contains: – Technology (optic, regular) – TV/Internet/Phone – Address – Etc...
  • 3. The solution ● Backward composition of directed acyclic graph ● Root node is customer order ● Each other node is installation instruction ● Edge means that parent can't be executed before child
  • 4. Example #1 Order DSL entry point Configure DSL modem Wire Segment 1 Wire Segment 2
  • 5. Composition ● Backward composition ● Each node is of certain type and can connect to only certain nodes ● Nodes types are stored in DB ● Evaluate which nodes can connect to the node ● Node instances are instantiated from node types in runtime
  • 6. Example #2 ● Algorithm: Incomplete = [order_node] While not incomplete.is_empty(): for node in incomplete: node_types = db.find_suitable_node_types(node) For child_type in node_types: If child_type.can_expand(node): child_node = child_type.expand(node) Incomplete.add(child_node) If node.is_complete(): Incomplete.remove(node)
  • 7. Database parent_type type Condition Order DslEntryPoint Parent.technology == 'DSL' DslEntryPoint OpticFibre parent.technology == 'DSL' && parent.order.medium = 'optic' DslEntryPoint Modem Configuration Parent.technology == 'DSL' && Exists('OpticFibre', 'EntryPoint')
  • 8. Example of node class DslEntryPoint: def can_expand(node): return evaluate(this.condition, parent=node) def expand(parent): child = new DslEntryPoint(parent.address) parent.add_child(child) return child
  • 10. Summary ● Backward graph composition ● Graph prunning (inverse) ● Condition evaluation ● Polymorphism/interfaces