SlideShare a Scribd company logo
1 of 22
Download to read offline
Chilinet 
Hee Jeong Kim 
aprilhjk@gmail.com 
Summer Intern 
CHILI, EPFL, 2014
Outline 
• What Chilinet is 
• Project Goals 
• How it works 
• Execution Flows 
• Result 
• Expectations 
• Future work
What is Chilinet? 
• A client module to support communication 
between machines 
• Zmq messaging library & CZMQ binding 
• C++
Project Goals 
- Add network module to Qimchi framework 
- Implement simple demo to show how it works
Project Goals 
I want Chilinet to be.. 
1. Simple 
2. General / Flexible 
3. Replaceable
Chilinet Elements 
• ChiliClient 
- svrIP, ports 
- subscribe, getInit, pubRequest, storeState 
• State 
- topic, default value, current state 
- Read/write state file from/to disk 
- Fire event (When state is updated)
How does it work? 
Client Server 
- Graphic user interface 
QML 
Event Generation / Handling 
Qimchi Framework 
- Command line interface 
- Sends initState 
- Propagates update 
- Store state 
Chilitags Chilinet
How does it work? - State 
• State can be saved to a file in the server.
How does it work? – Events handling 
ü Codes in the grey box are executed when a user clicks a button. 
ü Codes in the grey box are executed when a user’s tag is detected.
How does it work? - Sockets 
- Among patterns provided by ZMQ, I used PUB-SUB, 
REP-REQ, PUSH-PULL patterns. 
• PUB-SUB 
• REP-REQ 
• PULL-PUSH 
• REQ-ROUTER 
• DEALER-REP 
• DEALER-ROUTER 
• DEALER-DEALER 
• ROUTER-ROUTER 
• PAIR-PAIR
How does it work? - Sockets
Execution Flow 
• Signal 
• Function call 
• Inner flow
Execution Flow - getInit 
Client Server 
OnStateUpdated OnCompleted 
6 5 4 1 
1. Client.getInit(topic, defaultval) 
5. State.setState(newState) 
6. StateUpdated 
2 
3 
REQ REP 
QML 
State ChiliClient 
Initialization(topic, value) 
If there is a file containing 
previous state information, 
read it and 
return previous state. 
If there is no file, 
save a default value to a file 
and return default value got 
from client.
Execution Flow – pub/sub 
Client Server 
On 
Clicked 
2 
3 
4 
On 
Completed 
5 
. 
. 
1 
PUSH 
OnState 
Updated 
6 
QML 
State ChiliClient 
1. Client.subscribe(topic) 
2. Client.pubRequest(topic, value) 
5. Subscribed 
6. StateUpdated 
updateState ( ) 
PULL 
writeFile(topic, value, false) 
Overwrite a value (new state) 
to a file named topic.
Execution Flow – storeState 
Client Server 
QML 
1 2 
4 5 
OnClicked 
OnStateUpdated 
3 
PUSH 
ChiliClient 
State 
PULL 
1. State.updateState(value) 
2. StateUpdated 
3. Client.storeState(topic, value) 
5. Server.writeFile(fileName. Value, true) 
writeFile(topic, value, true) 
Write a value (new state) 
to a file named topic. 
You can consider this 
function as a function 
for logging.
Demo 
• One central server 
• Many clients 
• Three states 
• Input event from mouse
Project Goals – Simplicity
Project Goals – Flexibility 
• We can store any string as 
a state. 
• Application can have as 
many states as we want. 
• You can make a state to be 
shared or not. 
Possible msgs 
- Position of tangible object 
- Events 
Next step / Previous step / 
Help / Check solution / 
show axes / construction lines / 
freeze
Project Goals – Replaceablility 
In QML, No ZMQ code/elements needed. Good!
Result 
Anyone can get the codes from github. 
ChiliClient : https://github.com/heejeongkim/qimchi/tree/chilinet0820 
ChiliSvr : https://github.com/heejeongkim/ChiliSvr
Expectations 
• Orchestration 
– Freeze 
– Monitoring 
• Expansion domain of activity 
• Easy to collect user data
Future work 
• Can it be more simple? 
• Mask options for propagation 
• File Download (roll book, activity file etc..) 
• 1:1 communication 
Is it simple enough?

More Related Content

What's hot

Streaming your Lyft Ride Prices - Flink Forward SF 2019
Streaming your Lyft Ride Prices - Flink Forward SF 2019Streaming your Lyft Ride Prices - Flink Forward SF 2019
Streaming your Lyft Ride Prices - Flink Forward SF 2019Thomas Weise
 
Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...
Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...
Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...Flink Forward
 
Grokking TechTalk #24: Kafka's principles and protocols
Grokking TechTalk #24: Kafka's principles and protocolsGrokking TechTalk #24: Kafka's principles and protocols
Grokking TechTalk #24: Kafka's principles and protocolsGrokking VN
 
Ginsbourg.com presentation of open source performance validation
Ginsbourg.com presentation of open source performance validationGinsbourg.com presentation of open source performance validation
Ginsbourg.com presentation of open source performance validationPerfecto Mobile
 
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy FarkasVirtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy FarkasFlink Forward
 
Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...
Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...
Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...Flink Forward
 
End to end testing a web application with Clojure
End to end testing a web application with ClojureEnd to end testing a web application with Clojure
End to end testing a web application with ClojureGerard Klijs
 
Работаем с RabbitMQ в Python используя kombu + gevent. (Rinat khabibiev)
Работаем с RabbitMQ в Python используя kombu + gevent. (Rinat khabibiev)Работаем с RabbitMQ в Python используя kombu + gevent. (Rinat khabibiev)
Работаем с RabbitMQ в Python используя kombu + gevent. (Rinat khabibiev)IT-Доминанта
 
Flink Forward San Francisco 2019: Massive Scale Data Processing at Netflix us...
Flink Forward San Francisco 2019: Massive Scale Data Processing at Netflix us...Flink Forward San Francisco 2019: Massive Scale Data Processing at Netflix us...
Flink Forward San Francisco 2019: Massive Scale Data Processing at Netflix us...Flink Forward
 
Flink Forward Berlin 2017: Patrick Gunia - Migration of a realtime stats prod...
Flink Forward Berlin 2017: Patrick Gunia - Migration of a realtime stats prod...Flink Forward Berlin 2017: Patrick Gunia - Migration of a realtime stats prod...
Flink Forward Berlin 2017: Patrick Gunia - Migration of a realtime stats prod...Flink Forward
 
Flink Connector Development Tips & Tricks
Flink Connector Development Tips & TricksFlink Connector Development Tips & Tricks
Flink Connector Development Tips & TricksEron Wright
 
Reactive programming
Reactive programmingReactive programming
Reactive programmingsaykopatt
 
Flink Forward San Francisco 2019: Moving from Lambda and Kappa Architectures ...
Flink Forward San Francisco 2019: Moving from Lambda and Kappa Architectures ...Flink Forward San Francisco 2019: Moving from Lambda and Kappa Architectures ...
Flink Forward San Francisco 2019: Moving from Lambda and Kappa Architectures ...Flink Forward
 

What's hot (20)

Streaming your Lyft Ride Prices - Flink Forward SF 2019
Streaming your Lyft Ride Prices - Flink Forward SF 2019Streaming your Lyft Ride Prices - Flink Forward SF 2019
Streaming your Lyft Ride Prices - Flink Forward SF 2019
 
Event driven-arch
Event driven-archEvent driven-arch
Event driven-arch
 
Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...
Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...
Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...
 
Spring batch
Spring batchSpring batch
Spring batch
 
Experiment for large-scale operation of LibreOffice Online, 2019 Edition
Experiment for large-scale operation of LibreOffice Online, 2019 EditionExperiment for large-scale operation of LibreOffice Online, 2019 Edition
Experiment for large-scale operation of LibreOffice Online, 2019 Edition
 
Reactive programming intro
Reactive programming introReactive programming intro
Reactive programming intro
 
Asynchronous AMQP
Asynchronous AMQPAsynchronous AMQP
Asynchronous AMQP
 
Grokking TechTalk #24: Kafka's principles and protocols
Grokking TechTalk #24: Kafka's principles and protocolsGrokking TechTalk #24: Kafka's principles and protocols
Grokking TechTalk #24: Kafka's principles and protocols
 
Ginsbourg.com presentation of open source performance validation
Ginsbourg.com presentation of open source performance validationGinsbourg.com presentation of open source performance validation
Ginsbourg.com presentation of open source performance validation
 
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy FarkasVirtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
Virtual Flink Forward 2020: Autoscaling Flink at Netflix - Timothy Farkas
 
Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...
Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...
Flink Forward SF 2017: Stephan Ewen - Convergence of real-time analytics and ...
 
Akka Persistence
Akka PersistenceAkka Persistence
Akka Persistence
 
End to end testing a web application with Clojure
End to end testing a web application with ClojureEnd to end testing a web application with Clojure
End to end testing a web application with Clojure
 
Работаем с RabbitMQ в Python используя kombu + gevent. (Rinat khabibiev)
Работаем с RabbitMQ в Python используя kombu + gevent. (Rinat khabibiev)Работаем с RabbitMQ в Python используя kombu + gevent. (Rinat khabibiev)
Работаем с RabbitMQ в Python используя kombu + gevent. (Rinat khabibiev)
 
Flink Forward San Francisco 2019: Massive Scale Data Processing at Netflix us...
Flink Forward San Francisco 2019: Massive Scale Data Processing at Netflix us...Flink Forward San Francisco 2019: Massive Scale Data Processing at Netflix us...
Flink Forward San Francisco 2019: Massive Scale Data Processing at Netflix us...
 
Flink Forward Berlin 2017: Patrick Gunia - Migration of a realtime stats prod...
Flink Forward Berlin 2017: Patrick Gunia - Migration of a realtime stats prod...Flink Forward Berlin 2017: Patrick Gunia - Migration of a realtime stats prod...
Flink Forward Berlin 2017: Patrick Gunia - Migration of a realtime stats prod...
 
Java spring batch
Java spring batchJava spring batch
Java spring batch
 
Flink Connector Development Tips & Tricks
Flink Connector Development Tips & TricksFlink Connector Development Tips & Tricks
Flink Connector Development Tips & Tricks
 
Reactive programming
Reactive programmingReactive programming
Reactive programming
 
Flink Forward San Francisco 2019: Moving from Lambda and Kappa Architectures ...
Flink Forward San Francisco 2019: Moving from Lambda and Kappa Architectures ...Flink Forward San Francisco 2019: Moving from Lambda and Kappa Architectures ...
Flink Forward San Francisco 2019: Moving from Lambda and Kappa Architectures ...
 

Similar to Chilinet

Treasure Data Summer Internship 2016
Treasure Data Summer Internship 2016Treasure Data Summer Internship 2016
Treasure Data Summer Internship 2016Yuta Iwama
 
(ATS6-PLAT07) Managing AEP in an enterprise environment
(ATS6-PLAT07) Managing AEP in an enterprise environment(ATS6-PLAT07) Managing AEP in an enterprise environment
(ATS6-PLAT07) Managing AEP in an enterprise environmentBIOVIA
 
High Volume Payments using Mule
High Volume Payments using MuleHigh Volume Payments using Mule
High Volume Payments using MuleAdhish Pendharkar
 
Cloud Operations with Streaming Analytics using Apache NiFi and Apache Flink
Cloud Operations with Streaming Analytics using Apache NiFi and Apache FlinkCloud Operations with Streaming Analytics using Apache NiFi and Apache Flink
Cloud Operations with Streaming Analytics using Apache NiFi and Apache FlinkDataWorks Summit
 
Tech talk specflow_bddx_hassa_nagy
Tech talk specflow_bddx_hassa_nagyTech talk specflow_bddx_hassa_nagy
Tech talk specflow_bddx_hassa_nagySkills Matter
 
Flink powered stream processing platform at Pinterest
Flink powered stream processing platform at PinterestFlink powered stream processing platform at Pinterest
Flink powered stream processing platform at PinterestFlink Forward
 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Pavel Chunyayev
 
Open Source LinkedIn Analytics Pipeline - BOSS 2016 (VLDB)
Open Source LinkedIn Analytics Pipeline - BOSS 2016 (VLDB)Open Source LinkedIn Analytics Pipeline - BOSS 2016 (VLDB)
Open Source LinkedIn Analytics Pipeline - BOSS 2016 (VLDB)Issac Buenrostro
 
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014Puppet
 
Guidelhhghghine document final
Guidelhhghghine document finalGuidelhhghghine document final
Guidelhhghghine document finalnanirao686
 
Configuration management
Configuration managementConfiguration management
Configuration managementLuca De Vitis
 
OSDC 2018 | From Monolith to Microservices by Paul Puschmann_
OSDC 2018 | From Monolith to Microservices by Paul Puschmann_OSDC 2018 | From Monolith to Microservices by Paul Puschmann_
OSDC 2018 | From Monolith to Microservices by Paul Puschmann_NETWAYS
 
Cloud operations with streaming analytics using big data tools
Cloud operations with streaming analytics using big data toolsCloud operations with streaming analytics using big data tools
Cloud operations with streaming analytics using big data toolsMiguel Pérez Colino
 
Running a Scalable And Reliable Symfony2 Application in Cloud (Symfony Sweden...
Running a Scalable And Reliable Symfony2 Application in Cloud (Symfony Sweden...Running a Scalable And Reliable Symfony2 Application in Cloud (Symfony Sweden...
Running a Scalable And Reliable Symfony2 Application in Cloud (Symfony Sweden...Ville Mattila
 
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1Building the Internet of Things with Thingsquare and Contiki - day 2 part 1
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1Adam Dunkels
 
SOFTWARE TESTING COURSE MODULES BY WWW.QATESTINGONLINETRAINING.COM
SOFTWARE TESTING COURSE MODULES BY WWW.QATESTINGONLINETRAINING.COMSOFTWARE TESTING COURSE MODULES BY WWW.QATESTINGONLINETRAINING.COM
SOFTWARE TESTING COURSE MODULES BY WWW.QATESTINGONLINETRAINING.COMKiran Chandra Chitmalla
 
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
 HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen... HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...Matt Leming
 

Similar to Chilinet (20)

Treasure Data Summer Internship 2016
Treasure Data Summer Internship 2016Treasure Data Summer Internship 2016
Treasure Data Summer Internship 2016
 
Unix commands
Unix commandsUnix commands
Unix commands
 
(ATS6-PLAT07) Managing AEP in an enterprise environment
(ATS6-PLAT07) Managing AEP in an enterprise environment(ATS6-PLAT07) Managing AEP in an enterprise environment
(ATS6-PLAT07) Managing AEP in an enterprise environment
 
High Volume Payments using Mule
High Volume Payments using MuleHigh Volume Payments using Mule
High Volume Payments using Mule
 
Cloud Operations with Streaming Analytics using Apache NiFi and Apache Flink
Cloud Operations with Streaming Analytics using Apache NiFi and Apache FlinkCloud Operations with Streaming Analytics using Apache NiFi and Apache Flink
Cloud Operations with Streaming Analytics using Apache NiFi and Apache Flink
 
Tech talk specflow_bddx_hassa_nagy
Tech talk specflow_bddx_hassa_nagyTech talk specflow_bddx_hassa_nagy
Tech talk specflow_bddx_hassa_nagy
 
Flink powered stream processing platform at Pinterest
Flink powered stream processing platform at PinterestFlink powered stream processing platform at Pinterest
Flink powered stream processing platform at Pinterest
 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015
 
Open Source LinkedIn Analytics Pipeline - BOSS 2016 (VLDB)
Open Source LinkedIn Analytics Pipeline - BOSS 2016 (VLDB)Open Source LinkedIn Analytics Pipeline - BOSS 2016 (VLDB)
Open Source LinkedIn Analytics Pipeline - BOSS 2016 (VLDB)
 
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
 
Guidelhhghghine document final
Guidelhhghghine document finalGuidelhhghghine document final
Guidelhhghghine document final
 
Configuration management
Configuration managementConfiguration management
Configuration management
 
JBUG.be jBPM4
JBUG.be jBPM4JBUG.be jBPM4
JBUG.be jBPM4
 
OSDC 2018 | From Monolith to Microservices by Paul Puschmann_
OSDC 2018 | From Monolith to Microservices by Paul Puschmann_OSDC 2018 | From Monolith to Microservices by Paul Puschmann_
OSDC 2018 | From Monolith to Microservices by Paul Puschmann_
 
Cloud operations with streaming analytics using big data tools
Cloud operations with streaming analytics using big data toolsCloud operations with streaming analytics using big data tools
Cloud operations with streaming analytics using big data tools
 
Running a Scalable And Reliable Symfony2 Application in Cloud (Symfony Sweden...
Running a Scalable And Reliable Symfony2 Application in Cloud (Symfony Sweden...Running a Scalable And Reliable Symfony2 Application in Cloud (Symfony Sweden...
Running a Scalable And Reliable Symfony2 Application in Cloud (Symfony Sweden...
 
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1Building the Internet of Things with Thingsquare and Contiki - day 2 part 1
Building the Internet of Things with Thingsquare and Contiki - day 2 part 1
 
SOFTWARE TESTING COURSE MODULES BY WWW.QATESTINGONLINETRAINING.COM
SOFTWARE TESTING COURSE MODULES BY WWW.QATESTINGONLINETRAINING.COMSOFTWARE TESTING COURSE MODULES BY WWW.QATESTINGONLINETRAINING.COM
SOFTWARE TESTING COURSE MODULES BY WWW.QATESTINGONLINETRAINING.COM
 
J unit
J unitJ unit
J unit
 
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
 HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen... HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
 

Recently uploaded

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Recently uploaded (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

Chilinet

  • 1. Chilinet Hee Jeong Kim aprilhjk@gmail.com Summer Intern CHILI, EPFL, 2014
  • 2. Outline • What Chilinet is • Project Goals • How it works • Execution Flows • Result • Expectations • Future work
  • 3. What is Chilinet? • A client module to support communication between machines • Zmq messaging library & CZMQ binding • C++
  • 4. Project Goals - Add network module to Qimchi framework - Implement simple demo to show how it works
  • 5. Project Goals I want Chilinet to be.. 1. Simple 2. General / Flexible 3. Replaceable
  • 6. Chilinet Elements • ChiliClient - svrIP, ports - subscribe, getInit, pubRequest, storeState • State - topic, default value, current state - Read/write state file from/to disk - Fire event (When state is updated)
  • 7. How does it work? Client Server - Graphic user interface QML Event Generation / Handling Qimchi Framework - Command line interface - Sends initState - Propagates update - Store state Chilitags Chilinet
  • 8. How does it work? - State • State can be saved to a file in the server.
  • 9. How does it work? – Events handling ü Codes in the grey box are executed when a user clicks a button. ü Codes in the grey box are executed when a user’s tag is detected.
  • 10. How does it work? - Sockets - Among patterns provided by ZMQ, I used PUB-SUB, REP-REQ, PUSH-PULL patterns. • PUB-SUB • REP-REQ • PULL-PUSH • REQ-ROUTER • DEALER-REP • DEALER-ROUTER • DEALER-DEALER • ROUTER-ROUTER • PAIR-PAIR
  • 11. How does it work? - Sockets
  • 12. Execution Flow • Signal • Function call • Inner flow
  • 13. Execution Flow - getInit Client Server OnStateUpdated OnCompleted 6 5 4 1 1. Client.getInit(topic, defaultval) 5. State.setState(newState) 6. StateUpdated 2 3 REQ REP QML State ChiliClient Initialization(topic, value) If there is a file containing previous state information, read it and return previous state. If there is no file, save a default value to a file and return default value got from client.
  • 14. Execution Flow – pub/sub Client Server On Clicked 2 3 4 On Completed 5 . . 1 PUSH OnState Updated 6 QML State ChiliClient 1. Client.subscribe(topic) 2. Client.pubRequest(topic, value) 5. Subscribed 6. StateUpdated updateState ( ) PULL writeFile(topic, value, false) Overwrite a value (new state) to a file named topic.
  • 15. Execution Flow – storeState Client Server QML 1 2 4 5 OnClicked OnStateUpdated 3 PUSH ChiliClient State PULL 1. State.updateState(value) 2. StateUpdated 3. Client.storeState(topic, value) 5. Server.writeFile(fileName. Value, true) writeFile(topic, value, true) Write a value (new state) to a file named topic. You can consider this function as a function for logging.
  • 16. Demo • One central server • Many clients • Three states • Input event from mouse
  • 17. Project Goals – Simplicity
  • 18. Project Goals – Flexibility • We can store any string as a state. • Application can have as many states as we want. • You can make a state to be shared or not. Possible msgs - Position of tangible object - Events Next step / Previous step / Help / Check solution / show axes / construction lines / freeze
  • 19. Project Goals – Replaceablility In QML, No ZMQ code/elements needed. Good!
  • 20. Result Anyone can get the codes from github. ChiliClient : https://github.com/heejeongkim/qimchi/tree/chilinet0820 ChiliSvr : https://github.com/heejeongkim/ChiliSvr
  • 21. Expectations • Orchestration – Freeze – Monitoring • Expansion domain of activity • Easy to collect user data
  • 22. Future work • Can it be more simple? • Mask options for propagation • File Download (roll book, activity file etc..) • 1:1 communication Is it simple enough?