SlideShare a Scribd company logo
Learning from Failures:
    a Lightweight Approach to
 Run-Time Behavioural Adaptation

    J. Antonio Martín, Antonio Borgi and Ernesto Pimentel
           University of Málaga - University of Pisa



14 of September, 2011      Oslo, Norway                 FACS'11
Motivation




 In pervasive computing scenarios, we have thousands of
interacting entities with limited resources which may move,
               change and degrade over time
Motivation




Existing WSAN could benefit from other networks by
 collaborating in communications and functionality
Motivation




Flaky communication channels or low battery could disable part of
 the functionality of a node. Therefore, other nodes should avoid
           wasting battery requesting such functionality
Motivation




Changes such as node replacement, hardware malfunctions and
       environment interferences should also be adapted
Failures occur, but they must be mitigated or solved altogether
Assumptions
• We do not know the actual behaviour of the services
   o New unforeseen services might come up
   o Service behaviour may change unexpectedly due to
     hardware issues
   o This causes incompatibilities in signature and behaviour
• The nodes have limited resources
   o Computation, memory and battery are scarce
   o Communications quickly deplete the battery
   o Bounded services
• We have an adaptation contract
   o This is based on the signature of the services
   o And (optionally) a declarative representation of the goal of
     the adapted session
   o Alternatively, we could use zero-knowledge adaptation
Behavioural adaptation




Different operation names or operations which are require in a
 different order than expected cause deadlock situations and
        impede the correct interaction among services
Behavioural adaptation




An adaptor intermediates between two parts of the system while
    solving their incompatibilities in signature and behaviour
  For instance, an adaptor can wrap an incompatible service
Behavioural adaptation




        An adaptor is specified in a declarative maner
                  by an adaptation contract
Traditionally, adaptors are synthesised knowing the contract
                and the behaviour of the services
Learning adaptors




 In this work, however, because of the ever-changing nature of
 pervasive computing scenarios, we don't know the behaviour
    of the services, we cannot synthesise the adaptor and,
therefore, we have to learn their incompatibilities dynamically
Learning adaptors




Basically, the adaptor will offer every interaction allowed by the
contract and, when deadlock situations arise, the adaptor learns
 to avoid that failed trace henceforth. Therefore, failed traces
   might occur but the adaptor eventually learns to avoid them
Adaptation contract

Services         Adaptation Contract       Services

              1. !user(U) <>
              2. !pass(P) <> ?login(U,P)
                         ...
 !user(usr)   8.          <> !quit()       ?login(usr,
!pass(psw)    9. !quit() <>                      psw)
     ...                                       ...
   !quit()                                   !quit()
Adaptation contract

Services         Adaptation Contract       Services

              1. !user(U) <>
              2. !pass(P) <> ?login(U,P)
                         ...
 !user(usr)   8.          <> !quit()       ?login(usr,
!pass(psw)    9. !quit() <>                      psw)
     ...                                       ...
   !quit()                                   !quit()
Learning adaptor
Services                  Learning Adaptor                            Services
              1. !user(U) <>               1.   Adaptation contract
              2. !pass(P) <> ?login(U,P)
                         ...               2.   Current state
              8.          <> !quit()       3.   Current trace
              9. !quit() <>
                                           4.   Inhibited traces
                                                          {}
                                                                      ?login(usr,
 !user(usr)
                                                                            psw)
!pass(psw)
                                                                          ...
     ...
                                                                        !quit()
   !quit()
Learning adaptor
Services                  Learning Adaptor                          Services
              1. !user(U) <>
              2. !pass(P) <> ?login(U,P)
                         ...               1. Adaptation contract
              8.          <> !quit()
              9. !quit() <>                2. Current state
                                           3. Inhibited traces
                                                        {}
                                                                    ?login(usr,
 !user(usr)
                                                                          psw)
!pass(psw)
                                                                        ...
     ...
                                                                      !quit()
   !quit()
Learning adaptor
Services                  Learning Adaptor                          Services
              1. !user(U) <>
              2. !pass(P) <> ?login(U,P)
                         ...               1. Adaptation contract
              8.          <> !quit()
              9. !quit() <>                2. Current state
                                           3. Inhibited traces
                                                        {}
                                                                    ?login(usr,
 !user(usr)
                                                                          psw)
!pass(psw)
                                                                        ...
     ...
                                                                      !quit()
   !quit()
Learning adaptor
Services                  Learning Adaptor                            Services
              1. !user(U) <>
              2. !pass(P) <> ?login(U,P)
                         ...               1.   Adaptation contract
              8.          <> !quit()
              9. !quit() <>                2.   Current state
                                           3.   Current trace
                                           4.   Inhibited traces
                                                          {}          ?login(usr,
 !user(usr)
                                                                            psw)
!pass(psw)
                                                                          ...
     ...
                                                                        !quit()
   !quit()
Learning adaptor
Services                 Learning Adaptor                            Services
             1. !user(U) <>
             2. !pass(P) <> ?login(U,P)
                        ...               1.   Adaptation contract
             8.          <> !quit()
             9. !quit() <>                2.   Current state
                                          3.   Current trace
                                          4.   Inhibited traces
                                                         {}          ?login(usr,
!user(usr)
                                                                           psw)
!pass(psw)
                                                                         ...
     ...
                                                                       !quit()
   !quit()
Learning adaptor
Services                 Learning Adaptor                          Services
             1. !user(U) <>
             2. !pass(P) <> ?login(U,P)
                        ...               1. Adaptation contract
             8.          <> !quit()
             9. !quit() <>                2. Current state
                                          3. Inhibited traces
                                                       {}
                                                                   ?login(usr,
!user(usr)
                                                                         psw)
!pass(psw)
                                                                       ...
     ...
                                                                     !quit()
   !quit()
Learning adaptor
Services                 Learning Adaptor                            Services
             1. !user(U) <>
             2. !pass(P) <> ?login(U,P)
                                          1.   Adaptation contract
                        ...               2.   Current state
             8.          <> !quit()
             9. !quit() <>                3.   Current trace
                                          4.   Inhibited traces
                                                         {}
                                                                     ?login(usr,
!user(usr)
                                                                           psw)
!pass(psw)
                                                                         ...
     ...
                                                                       !quit()
   !quit()
Learning adaptor
Services               Learning Adaptor                             Services
           1. !user(U) <>
           2. !pass(P) <> ?login(U,P)
                                        1.   Adaptation contract
                      ...               2.   Current state
           8.          <> !quit()
           9. !quit() <>                3.   Current trace
                                        4.   Inhibited traces
                                             {a?user(U):b?quit()}
                                                                    ?login(usr,
                                                                          psw)
                                                                        ...
                                                                      !quit()
Learning adaptor
Services               Learning Adaptor                             Services
           1. !user(U) <>
           2. !pass(P) <> ?login(U,P)
                                        1.   Adaptation contract
                      ...               2.   Current state
           8.          <> !quit()
           9. !quit() <>                3.   Current trace
                                        4.   Inhibited traces
                                             {a?user(U):b?quit(),
                                                   b?quit()}        ?login(usr,
                                                                          psw)
                                                                        ...
                                                                      !quit()
Properties
      Learning Adaptor
• Convergence
• Correctness
• Well-definedness
• Complexity (general case)
  o O(SAd)
• Complexity (particular case)
  o Time: O(max(A,d))
  o Space: O(SA+Ad)


S - Number of contract states
A - Number of contract vectors
d - Maximum length of a trace
Evaluation
Evaluation




  data
Evaluation




  data
Evaluation




Sample standard deviation with 10 samples
Evaluation




       55 inhibited traces vs 7123 transitions allowing
          a total of 5466 different successful sessions

Sample standard deviation with 10 samples
Sporadic errors


• Communications are unstable due to hardware
  failures (e.g., low battery) or environmental
  interferences (e.g., shadow fading)
• We model this situation with a transition error rate (TER)
  which is the probability of a certain synchronisation to
  forcibly fail due to these sporadic errors
• The learning adaptors presented so far inhibit every
  failed trace, therefore they converge to empty adaptors
  when sporadic errors occur...
• ... therefore we have to forget those inhibited traces
  that we cannot trust
Learning to forget

• Bounded learning: learn up to X traces and, when the
  threshold is met, then forget the oldest/longest/least-
  used/...
• Reset on empty adaptors: if we inhibit the empty trace,
  then the adaptor is empty
   o Then we can forget some (or all) traces in I
• Recognise sporadic errors: traces are inhibited
  transition-by-transition. If some transitions are skipped,
  it may be caused by a sporadic error
Learning to forget

• Bounded learning: learn up to X traces and, when the
  threshold is met, then forget the oldest/longest/least-
  used/...
• Reset on empty adaptors: if we inhibit the empty trace,
  then the adaptor is empty
   o Then we can forget some (or all) traces in I
• Recognise sporadic errors: traces are inhibited
  transition-by-transition. If some transitions are skipped,
  it may be caused by a sporadic error
Learning to forget

• Bounded learning: learn up to X traces and, when the
  threshold is met, then forget the oldest/longest/least-
  used/...
• Reset on empty adaptors: if we inhibit the empty trace,
  then the adaptor is empty
   o Then we can forget some (or all) traces in I
• Recognise sporadic errors: traces are inhibited
  transition-by-transition. If some transitions are skipped,
  it may be caused by a sporadic error
Learning to forget

• Bounded learning: learn up to X traces and, when the
  threshold is met, then forget the oldest/longest/least-
  used/...
• Reset on empty adaptors: if we inhibit the empty trace,
  then the adaptor is empty
   o Then we can forget some (or all) traces in I
• Recognise sporadic errors: traces are inhibited
  transition-by-transition. If some transitions are skipped,
  it may be caused by a sporadic error
Learning to forget

• Bounded learning: learn up to X traces and, when the
  threshold is met, then forget the oldest/longest/least-
  used/...
• Reset on empty adaptors: if we inhibit the empty trace,
  then the adaptor is empty
   o Then we can forget some (or all) traces in I
• Recognise sporadic errors: traces are inhibited
  transition-by-transition. If some transitions are skipped,
  it may be caused by a sporadic error
Learning to forget

• Bounded learning: learn up to X traces and, when the
  threshold is met, then forget the oldest/longest/least-
  used/...
• Reset on empty adaptors: if we inhibit the empty trace,
  then the adaptor is empty
   o Then we can forget some (or all) traces in I
• Recognise sporadic errors: traces are inhibited
  transition-by-transition. If some transitions are skipped,
  it may be caused by a sporadic error
Learning to forget

• Bounded learning: learn up to X traces and, when the
  threshold is met, then forget the oldest/longest/least-
  used/...
• Reset on empty adaptors: if we inhibit the empty trace,
  then the adaptor is empty
   o Then we can forget some (or all) traces in I
• Recognise sporadic errors: traces are inhibited
  transition-by-transition. If some transitions are skipped,
  it may be caused by a sporadic error
Evaluation with sporadic errors




   TER = 0 in (0, 4000]; 10E−4 in (4000, 6000]; 10E−3 in (6000, 10000]; 0.01 in (10000, 12000];
0.1 in (12000, 14000]; 10E−3 in (14000, 16000]; 10E−4 in (16000, 18000]; and 0 in (18000, 20000]
Evaluation: close-up on athr




   TER = 0 in (0, 4000]; 10E−4 in (4000, 6000]; 10E−3 in (6000, 10000]; 0.01 in (10000, 12000];
0.1 in (12000, 14000]; 10E−3 in (14000, 16000]; 10E−4 in (16000, 18000]; and 0 in (18000, 20000]
Zero-knowledge adaptation

 Zero-knowledge
Adaptation Contract


         {}
Zero-knowledge adaptation

           Zero-knowledge
          Adaptation Contract

     1.       !a <>
     2.          <> ?a
!a
Zero-knowledge adaptation

      Zero-knowledge
     Adaptation Contract

1.       !a <>
2.          <> ?a          !a
Zero-knowledge adaptation

      Zero-knowledge
     Adaptation Contract
1.       !a <>
2.          <> ?a
3.          <> !b
4.       ?b <>
5.       !c <>
           ...
Conclusions

• Contribution
  o Learning adaptors are not synthesised
  o They do not need to know the behaviour/protocol of the
    services, they learn it
  o Failed interactions are learnt and avoided
  o The learning process is completely formalised and it
    converges to the same solutions as traditional adaptors
  o Simulation implemented in the ITACA toolbox*


• Future work
   o Evaluate the feasibility of zero-knowledge adaptation
   o Explore other techniques for contract generation
   o Deploy and test on a real network


                               * http://itaca.gisum.uma.es/
Thank you!

More Related Content

Similar to Learning from Failures: a Lightweight Approach to Run-Time Behavioural Adaptation

Erlang bootstrap course
Erlang bootstrap courseErlang bootstrap course
Erlang bootstrap course
Martin Logan
 
Embedded system - introduction to arm7
Embedded system -  introduction to arm7Embedded system -  introduction to arm7
Embedded system - introduction to arm7
Vibrant Technologies & Computers
 
Introduction To Erlang Final
Introduction To Erlang   FinalIntroduction To Erlang   Final
Introduction To Erlang Final
SinarShebl
 
Arduino reference
Arduino   referenceArduino   reference
Arduino reference
Roberth Mamani Moya
 
Structured concurrency with Kotlin Coroutines
Structured concurrency with Kotlin CoroutinesStructured concurrency with Kotlin Coroutines
Structured concurrency with Kotlin Coroutines
Vadims Savjolovs
 
Qemu JIT Code Generator and System Emulation
Qemu JIT Code Generator and System EmulationQemu JIT Code Generator and System Emulation
Qemu JIT Code Generator and System Emulation
National Cheng Kung University
 
[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory Analysis[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory Analysis
Moabi.com
 
เฉลยคำตอบ O
เฉลยคำตอบ Oเฉลยคำตอบ O
เฉลยคำตอบ O
Surapong Jakang
 
Ee600 lab3 hal9000_grp
Ee600 lab3 hal9000_grpEe600 lab3 hal9000_grp
Ee600 lab3 hal9000_grp
Loren Schwappach
 
Storm
StormStorm
[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis
Moabi.com
 
Zope component architechture
Zope component architechtureZope component architechture
Zope component architechture
Anatoly Bubenkov
 
Scrapping Your Inefficient Engine
Scrapping Your Inefficient EngineScrapping Your Inefficient Engine
Scrapping Your Inefficient Engine
Edwin Brady
 
Plugins by tagomoris #fluentdcasual
Plugins by tagomoris #fluentdcasualPlugins by tagomoris #fluentdcasual
Plugins by tagomoris #fluentdcasual
SATOSHI TAGOMORI
 
Useful cli commands v1
Useful cli commands v1Useful cli commands v1
Hadoop Summit Europe 2014: Apache Storm Architecture
Hadoop Summit Europe 2014: Apache Storm ArchitectureHadoop Summit Europe 2014: Apache Storm Architecture
Hadoop Summit Europe 2014: Apache Storm Architecture
P. Taylor Goetz
 
Monads in Swift
Monads in SwiftMonads in Swift
Monads in Swift
Vincent Pradeilles
 
SICP勉強会について
SICP勉強会についてSICP勉強会について
SICP勉強会について
Yusuke Sasaki
 
Let'swift "Concurrency in swift"
Let'swift "Concurrency in swift"Let'swift "Concurrency in swift"
Let'swift "Concurrency in swift"
Hyuk Hur
 
Golang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war storyGolang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war story
Aerospike
 

Similar to Learning from Failures: a Lightweight Approach to Run-Time Behavioural Adaptation (20)

Erlang bootstrap course
Erlang bootstrap courseErlang bootstrap course
Erlang bootstrap course
 
Embedded system - introduction to arm7
Embedded system -  introduction to arm7Embedded system -  introduction to arm7
Embedded system - introduction to arm7
 
Introduction To Erlang Final
Introduction To Erlang   FinalIntroduction To Erlang   Final
Introduction To Erlang Final
 
Arduino reference
Arduino   referenceArduino   reference
Arduino reference
 
Structured concurrency with Kotlin Coroutines
Structured concurrency with Kotlin CoroutinesStructured concurrency with Kotlin Coroutines
Structured concurrency with Kotlin Coroutines
 
Qemu JIT Code Generator and System Emulation
Qemu JIT Code Generator and System EmulationQemu JIT Code Generator and System Emulation
Qemu JIT Code Generator and System Emulation
 
[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory Analysis[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory Analysis
 
เฉลยคำตอบ O
เฉลยคำตอบ Oเฉลยคำตอบ O
เฉลยคำตอบ O
 
Ee600 lab3 hal9000_grp
Ee600 lab3 hal9000_grpEe600 lab3 hal9000_grp
Ee600 lab3 hal9000_grp
 
Storm
StormStorm
Storm
 
[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis
 
Zope component architechture
Zope component architechtureZope component architechture
Zope component architechture
 
Scrapping Your Inefficient Engine
Scrapping Your Inefficient EngineScrapping Your Inefficient Engine
Scrapping Your Inefficient Engine
 
Plugins by tagomoris #fluentdcasual
Plugins by tagomoris #fluentdcasualPlugins by tagomoris #fluentdcasual
Plugins by tagomoris #fluentdcasual
 
Useful cli commands v1
Useful cli commands v1Useful cli commands v1
Useful cli commands v1
 
Hadoop Summit Europe 2014: Apache Storm Architecture
Hadoop Summit Europe 2014: Apache Storm ArchitectureHadoop Summit Europe 2014: Apache Storm Architecture
Hadoop Summit Europe 2014: Apache Storm Architecture
 
Monads in Swift
Monads in SwiftMonads in Swift
Monads in Swift
 
SICP勉強会について
SICP勉強会についてSICP勉強会について
SICP勉強会について
 
Let'swift "Concurrency in swift"
Let'swift "Concurrency in swift"Let'swift "Concurrency in swift"
Let'swift "Concurrency in swift"
 
Golang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war storyGolang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war story
 

Recently uploaded

GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
saastr
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
Pravash Chandra Das
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 

Recently uploaded (20)

GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 

Learning from Failures: a Lightweight Approach to Run-Time Behavioural Adaptation

  • 1. Learning from Failures: a Lightweight Approach to Run-Time Behavioural Adaptation J. Antonio Martín, Antonio Borgi and Ernesto Pimentel University of Málaga - University of Pisa 14 of September, 2011 Oslo, Norway FACS'11
  • 2. Motivation In pervasive computing scenarios, we have thousands of interacting entities with limited resources which may move, change and degrade over time
  • 3. Motivation Existing WSAN could benefit from other networks by collaborating in communications and functionality
  • 4. Motivation Flaky communication channels or low battery could disable part of the functionality of a node. Therefore, other nodes should avoid wasting battery requesting such functionality
  • 5. Motivation Changes such as node replacement, hardware malfunctions and environment interferences should also be adapted Failures occur, but they must be mitigated or solved altogether
  • 6. Assumptions • We do not know the actual behaviour of the services o New unforeseen services might come up o Service behaviour may change unexpectedly due to hardware issues o This causes incompatibilities in signature and behaviour • The nodes have limited resources o Computation, memory and battery are scarce o Communications quickly deplete the battery o Bounded services • We have an adaptation contract o This is based on the signature of the services o And (optionally) a declarative representation of the goal of the adapted session o Alternatively, we could use zero-knowledge adaptation
  • 7. Behavioural adaptation Different operation names or operations which are require in a different order than expected cause deadlock situations and impede the correct interaction among services
  • 8. Behavioural adaptation An adaptor intermediates between two parts of the system while solving their incompatibilities in signature and behaviour For instance, an adaptor can wrap an incompatible service
  • 9. Behavioural adaptation An adaptor is specified in a declarative maner by an adaptation contract Traditionally, adaptors are synthesised knowing the contract and the behaviour of the services
  • 10. Learning adaptors In this work, however, because of the ever-changing nature of pervasive computing scenarios, we don't know the behaviour of the services, we cannot synthesise the adaptor and, therefore, we have to learn their incompatibilities dynamically
  • 11. Learning adaptors Basically, the adaptor will offer every interaction allowed by the contract and, when deadlock situations arise, the adaptor learns to avoid that failed trace henceforth. Therefore, failed traces might occur but the adaptor eventually learns to avoid them
  • 12. Adaptation contract Services Adaptation Contract Services 1. !user(U) <> 2. !pass(P) <> ?login(U,P) ... !user(usr) 8. <> !quit() ?login(usr, !pass(psw) 9. !quit() <> psw) ... ... !quit() !quit()
  • 13. Adaptation contract Services Adaptation Contract Services 1. !user(U) <> 2. !pass(P) <> ?login(U,P) ... !user(usr) 8. <> !quit() ?login(usr, !pass(psw) 9. !quit() <> psw) ... ... !quit() !quit()
  • 14. Learning adaptor Services Learning Adaptor Services 1. !user(U) <> 1. Adaptation contract 2. !pass(P) <> ?login(U,P) ... 2. Current state 8. <> !quit() 3. Current trace 9. !quit() <> 4. Inhibited traces {} ?login(usr, !user(usr) psw) !pass(psw) ... ... !quit() !quit()
  • 15. Learning adaptor Services Learning Adaptor Services 1. !user(U) <> 2. !pass(P) <> ?login(U,P) ... 1. Adaptation contract 8. <> !quit() 9. !quit() <> 2. Current state 3. Inhibited traces {} ?login(usr, !user(usr) psw) !pass(psw) ... ... !quit() !quit()
  • 16. Learning adaptor Services Learning Adaptor Services 1. !user(U) <> 2. !pass(P) <> ?login(U,P) ... 1. Adaptation contract 8. <> !quit() 9. !quit() <> 2. Current state 3. Inhibited traces {} ?login(usr, !user(usr) psw) !pass(psw) ... ... !quit() !quit()
  • 17. Learning adaptor Services Learning Adaptor Services 1. !user(U) <> 2. !pass(P) <> ?login(U,P) ... 1. Adaptation contract 8. <> !quit() 9. !quit() <> 2. Current state 3. Current trace 4. Inhibited traces {} ?login(usr, !user(usr) psw) !pass(psw) ... ... !quit() !quit()
  • 18. Learning adaptor Services Learning Adaptor Services 1. !user(U) <> 2. !pass(P) <> ?login(U,P) ... 1. Adaptation contract 8. <> !quit() 9. !quit() <> 2. Current state 3. Current trace 4. Inhibited traces {} ?login(usr, !user(usr) psw) !pass(psw) ... ... !quit() !quit()
  • 19. Learning adaptor Services Learning Adaptor Services 1. !user(U) <> 2. !pass(P) <> ?login(U,P) ... 1. Adaptation contract 8. <> !quit() 9. !quit() <> 2. Current state 3. Inhibited traces {} ?login(usr, !user(usr) psw) !pass(psw) ... ... !quit() !quit()
  • 20. Learning adaptor Services Learning Adaptor Services 1. !user(U) <> 2. !pass(P) <> ?login(U,P) 1. Adaptation contract ... 2. Current state 8. <> !quit() 9. !quit() <> 3. Current trace 4. Inhibited traces {} ?login(usr, !user(usr) psw) !pass(psw) ... ... !quit() !quit()
  • 21. Learning adaptor Services Learning Adaptor Services 1. !user(U) <> 2. !pass(P) <> ?login(U,P) 1. Adaptation contract ... 2. Current state 8. <> !quit() 9. !quit() <> 3. Current trace 4. Inhibited traces {a?user(U):b?quit()} ?login(usr, psw) ... !quit()
  • 22. Learning adaptor Services Learning Adaptor Services 1. !user(U) <> 2. !pass(P) <> ?login(U,P) 1. Adaptation contract ... 2. Current state 8. <> !quit() 9. !quit() <> 3. Current trace 4. Inhibited traces {a?user(U):b?quit(), b?quit()} ?login(usr, psw) ... !quit()
  • 23. Properties Learning Adaptor • Convergence • Correctness • Well-definedness • Complexity (general case) o O(SAd) • Complexity (particular case) o Time: O(max(A,d)) o Space: O(SA+Ad) S - Number of contract states A - Number of contract vectors d - Maximum length of a trace
  • 28. Evaluation 55 inhibited traces vs 7123 transitions allowing a total of 5466 different successful sessions Sample standard deviation with 10 samples
  • 29. Sporadic errors • Communications are unstable due to hardware failures (e.g., low battery) or environmental interferences (e.g., shadow fading) • We model this situation with a transition error rate (TER) which is the probability of a certain synchronisation to forcibly fail due to these sporadic errors • The learning adaptors presented so far inhibit every failed trace, therefore they converge to empty adaptors when sporadic errors occur... • ... therefore we have to forget those inhibited traces that we cannot trust
  • 30. Learning to forget • Bounded learning: learn up to X traces and, when the threshold is met, then forget the oldest/longest/least- used/... • Reset on empty adaptors: if we inhibit the empty trace, then the adaptor is empty o Then we can forget some (or all) traces in I • Recognise sporadic errors: traces are inhibited transition-by-transition. If some transitions are skipped, it may be caused by a sporadic error
  • 31. Learning to forget • Bounded learning: learn up to X traces and, when the threshold is met, then forget the oldest/longest/least- used/... • Reset on empty adaptors: if we inhibit the empty trace, then the adaptor is empty o Then we can forget some (or all) traces in I • Recognise sporadic errors: traces are inhibited transition-by-transition. If some transitions are skipped, it may be caused by a sporadic error
  • 32. Learning to forget • Bounded learning: learn up to X traces and, when the threshold is met, then forget the oldest/longest/least- used/... • Reset on empty adaptors: if we inhibit the empty trace, then the adaptor is empty o Then we can forget some (or all) traces in I • Recognise sporadic errors: traces are inhibited transition-by-transition. If some transitions are skipped, it may be caused by a sporadic error
  • 33. Learning to forget • Bounded learning: learn up to X traces and, when the threshold is met, then forget the oldest/longest/least- used/... • Reset on empty adaptors: if we inhibit the empty trace, then the adaptor is empty o Then we can forget some (or all) traces in I • Recognise sporadic errors: traces are inhibited transition-by-transition. If some transitions are skipped, it may be caused by a sporadic error
  • 34. Learning to forget • Bounded learning: learn up to X traces and, when the threshold is met, then forget the oldest/longest/least- used/... • Reset on empty adaptors: if we inhibit the empty trace, then the adaptor is empty o Then we can forget some (or all) traces in I • Recognise sporadic errors: traces are inhibited transition-by-transition. If some transitions are skipped, it may be caused by a sporadic error
  • 35. Learning to forget • Bounded learning: learn up to X traces and, when the threshold is met, then forget the oldest/longest/least- used/... • Reset on empty adaptors: if we inhibit the empty trace, then the adaptor is empty o Then we can forget some (or all) traces in I • Recognise sporadic errors: traces are inhibited transition-by-transition. If some transitions are skipped, it may be caused by a sporadic error
  • 36. Learning to forget • Bounded learning: learn up to X traces and, when the threshold is met, then forget the oldest/longest/least- used/... • Reset on empty adaptors: if we inhibit the empty trace, then the adaptor is empty o Then we can forget some (or all) traces in I • Recognise sporadic errors: traces are inhibited transition-by-transition. If some transitions are skipped, it may be caused by a sporadic error
  • 37. Evaluation with sporadic errors TER = 0 in (0, 4000]; 10E−4 in (4000, 6000]; 10E−3 in (6000, 10000]; 0.01 in (10000, 12000]; 0.1 in (12000, 14000]; 10E−3 in (14000, 16000]; 10E−4 in (16000, 18000]; and 0 in (18000, 20000]
  • 38. Evaluation: close-up on athr TER = 0 in (0, 4000]; 10E−4 in (4000, 6000]; 10E−3 in (6000, 10000]; 0.01 in (10000, 12000]; 0.1 in (12000, 14000]; 10E−3 in (14000, 16000]; 10E−4 in (16000, 18000]; and 0 in (18000, 20000]
  • 40. Zero-knowledge adaptation Zero-knowledge Adaptation Contract 1. !a <> 2. <> ?a !a
  • 41. Zero-knowledge adaptation Zero-knowledge Adaptation Contract 1. !a <> 2. <> ?a !a
  • 42. Zero-knowledge adaptation Zero-knowledge Adaptation Contract 1. !a <> 2. <> ?a 3. <> !b 4. ?b <> 5. !c <> ...
  • 43. Conclusions • Contribution o Learning adaptors are not synthesised o They do not need to know the behaviour/protocol of the services, they learn it o Failed interactions are learnt and avoided o The learning process is completely formalised and it converges to the same solutions as traditional adaptors o Simulation implemented in the ITACA toolbox* • Future work o Evaluate the feasibility of zero-knowledge adaptation o Explore other techniques for contract generation o Deploy and test on a real network * http://itaca.gisum.uma.es/