SlideShare uma empresa Scribd logo
1 de 24
Architectural Analysis of Systems based
    on the Publisher-Subscriber Style


Fraunhofer CESE                         NASA Goddard Space Flight Center

Dharmalingam Ganesan                    Lamont Ruley
Mikael Lindvall                         Robert Wiegand
                                        Vuong Ly
                                        Tina Tsui


                               © 2010 Fraunhofer USA, Inc.                 1
                       Center for Experimental Software Engineering
Background
• Architectural styles offer reusable
  solutions to recurring design problems
• Architectural styles define:
  – the roles of components and connectors
  – the structure or topology
  – the interaction behavior of involved elements
• Pipe-and-Filter, Publish-Subscribe, Client-
  Server are some architectural styles
                        © 2010 Fraunhofer USA, Inc.
                                                               2
                Center for Experimental Software Engineering
Model of Publish-Subscribe Style
• Components publish or subscribe to
  messages with relevant subjects/topics
• Components communicate indirectly by
  publishing and subscribing to messages
• Message delivery taken care by an
  intermediate software bus
• Indirect communication increases flexibility
  – ease of component substitution & integration
  – attractive for developing a family of systems
                        © 2010 Fraunhofer USA, Inc.
                                                               3
                Center for Experimental Software Engineering
Problem
• Increased flexibility of the pub-sub style
  decreases analyzability
  – difficult to extract dependencies among
    components
  – difficult to predict emerging behavior if several
    components are using the bus
     • E.g., timing problems, missed messages, etc.
• Need an approach for systematically
  analyzing pub-sub style implementations
  – NASA’s GMSEC is one example system
                          © 2010 Fraunhofer USA, Inc.
                                                                 4
                  Center for Experimental Software Engineering
Approach
• Derive reusable analysis questions from
  the definition of the style
• Structural questions are statically
  answerable
• Behavioral questions are best answered
  using dynamic analysis
  – by monitoring the running system with
    injected probes that generate runtime traces
• Static analysis is used to guide dynamic
  analysis                                                     5
                        © 2010 Fraunhofer USA, Inc.
                Center for Experimental Software Engineering
Elements of Software Bus
                                            Interfaces for
     Connection      Message
                                             Publishing
     Management       Buffer
                                                 and
                    Management
                                             Subscribing
                     Message
    Subscription
                     Routing
    Management
                    Management




 Typical elements we can expect in a software bus

 Challenge is to locate corresponding code elements




                              © 2010 Fraunhofer USA, Inc.
                                                                     6
                      Center for Experimental Software Engineering
Analysis Questions from the Style
• Are there any middleware used for
  implementing the software bus?
• If middleware is used, is there any
  middleware abstraction layer?
• Can publishers and subscribers be
  implemented in different programming
  languages?
• Which subscribers receive messages
  from which publishers and in what order?
                      © 2010 Fraunhofer USA, Inc.
                                                             7
              Center for Experimental Software Engineering
Static Analysis Strategies
Goal of static analysis is to bridge the abstraction gap between
source code concepts and abstract elements of the software bus

Fraunhofer’s experience repository contains data about several
external entities (table – small excerpt for middleware technologies)

Build abstractions using dependencies to external entities
          Middleware Vendor          Class Name               Method Name          Purpose
          Tibco Smart Sockets (SS)   SSConnection             SSConnection         Initialize connection to the
                                                                                   middleware
          Tibco SS                   SmartSockets::TipcSrv    send                 Publishes the given message
          Tibco SS                   SmartSockets::TipcSrv    setSubscribe         Subscribes to the given message

          Apache Active MQ           CMSConnection            CMSConnection        Initialize connection to the
                                                                                   middleware
          Apache Active MQ           cms::Session             createProducer       Publishes the given message
          Apache Active MQ           cms::MessageConsumer     setMessageListener   Subscribes to the given message




                                                © 2010 Fraunhofer USA, Inc.
                                                                                                                     8
                                        Center for Experimental Software Engineering
Dynamic Analysis Strategies
• Run-time traces are collected by
  instrumentation using static analysis
• Each run-time event is treated as a
  message
• Events of pub-sub style highly interleaved
• Construction of Colored Petri Nets (CP-
  nets) for recognizing pre-planned patterns
• CP-nets produce the actual architecture at
  run-time
                       © 2010 Fraunhofer USA, Inc.
                                                              9
               Center for Experimental Software Engineering
Dynamic Analysis - Overview
                                     GUI using
                                     Dyn-SAVE

                                                                  Style Constraints Checker
                                  Abstraction Builder                   using CP-nets
                                    using CP-nets


           Run-time Events      Run-time Event Collector
          (e.g., Call Event)      (RECO) component
         published on the bus
                                                                        Probes using
                                                                       static analysis


                                        System




 This set-up enables online dynamic analysis needed for
dynamically reconfigurable systems:
     Architecture extraction and analysis can be performed at run-time




                                         © 2010 Fraunhofer USA, Inc.
                                                                                              10
                                 Center for Experimental Software Engineering
Analysis of NASA’s GMSEC
• GMSEC API is a reusable framework for
  missions inside and outside NASA
• Publishers/Subscribers can be
  programmed in different languages
  (C/C++, Java, Perl)
• Objectives of the analysis:
  – Independent review of the implementation
    quality
  – Report structural and behavioral issues
                        © 2010 Fraunhofer USA, Inc.
                                                               11
                Center for Experimental Software Engineering
GMSEC’s NASA and Other Government Users
                          Operational                  In Development           Planned
KEY                       (since 2005)                 (2009)                   (ongoing meetings)

                         TRMM              Terra                               Aqua
                           SMEX Series           SDO                                        Aura
                                                                      Clarreo
                          ST-5
 Missions




                                                         MMOC
                                         GLAST           (multiple)
                                                                                     GPM

                           ISS (MSFC)                                         LRO-em                  MMS

                                                          CSTL         White Sands
                                                                                          GSFC Server
                         Cx Const.                                                        Farm
              and Labs




                                             FDF
 ExternalFacilities




                         of Labs
                                                        OTF (JSC)        WFF RCC

                                                   Air Force           NRO
                                                                            Homeland
                                                        ORS                 Security

                      Many missions depend on GMSEC!                               © 2010 Fraunhofer USA, Inc.
                                                                                                                          12
                                                                           Center for Experimental Software Engineering
GMSEC and the Satellite Control Domain
           MSFC



                                                                                     Avtec Systems


                                                                                             DesignAMERICA
Front-Ends,   Planning &         TLM/CMD           Flight         Analysis &
Simulators    Scheduling          Systems         Dynamics         Trending



                           Message Bus via API

   Test             Monitoring              Situational            Automation
   Tools              Tools                    Tools                  Tools




Nearly all COTS command and control systems are GMSEC compatible

Missions expect that components behave as specified!
                                              © 2010 Fraunhofer USA, Inc.
                                                                                                       13
                                      Center for Experimental Software Engineering
Structure of the GMSEC API
                            Connection                                         Connection is an abstract
                                                                              interface
           GMSEC/Wrapper

           tibco_rv         websphere7            tibco_ss                    Publishers/Subscribers
                                                                              program to the abstract
           ice         mb                  soap      activemq
                                                                              interface

          External                 MQ
                                  Series
                                                      Active MQ                All middleware APIs are
                                                                              wrapped
           ICE         socket.h              stdsoap2.h



                                                                               Binding to a selected
            ICEStorm

                                             Tibco smart
           ICEUtil        Tibco Rv
                                               sockets                        wrapper using dynamic loading

                                                                               Novel vendor independent
This structure was discovered from code
                                                                              middleware abstraction layer

                                                                               Helps NASA’s missions to
                                                                              avoid vendor lock-in
                                                   © 2010 Fraunhofer USA, Inc.
                                                                                                             14
                                           Center for Experimental Software Engineering
Dynamic Analysis of the GMSEC
             Software Bus (for “trace” messages)




            GEDAT         CAT                   GREAT        …            RECO
                                                                                 RECO collects
                                                                                 run-time traces

                                                                                 RECO subscribes
                                                                                 to trace messages
                Software Bus (for “real” messages)



 AspectJ was used to inject probe code into the bytecode of applications (bubbles)

 “Trace” messages and “real” messages are transmitted in different S/W bus
   to avoid any communication conflicts

                                        © 2010 Fraunhofer USA, Inc.
                                                                                              15
                                Center for Experimental Software Engineering
Discovered Views - sample
   Pid_7024
   (RECO)



  Pid_7720(SA)                                   Pid_7252 (CAT)



                                              Pid_4704 (CAT GUI)
                 Pid_3804 (GEDAT)

                     Connection port for publishing to the software bus

                     Connection port for subscribing to the software bus


 Automatically extracted at run-time using CP-nets

 Developers found it useful to understand the actual run-time structure
    One “unexpected” connection was found

 This view is not statically extractable because connections are established
  at run-time
                                                       © 2010 Fraunhofer USA, Inc.
                                                                                              16
                                               Center for Experimental Software Engineering
Detection of a High-Priority Bug
• Our CP-nets detected a bug due to:
  – inconsistency in the implementation of the
    same interface by different middleware
    wrappers
• One implementation allowed consecutive
  calls to “subscribe” without an intermediate
  “unsubscribe”
• Another implementation did not allow this
• Resulting in component substitution failure
                        © 2010 Fraunhofer USA, Inc.
                                                               17
                Center for Experimental Software Engineering
Conclusion
• Style based analysis makes reverse
  engineering focus and scalable
• Static analysis is used to:
  – Bridge the abstraction gap with
    implementation
  – Identify code location to inject probes
• Dynamic analysis is used to discover
  component-connector views
• Approach helped in finding a high-priority
  bug (which is fixed now)
                         © 2010 Fraunhofer USA, Inc.
                                                                18
                 Center for Experimental Software Engineering
Acknowledgement
• Lisa Montgomery of the NASA IV & V

• Sally Godfrey of the NASA GSFC

• All members of the GMSEC team




                      © 2010 Fraunhofer USA, Inc.
                                                             19
              Center for Experimental Software Engineering
Acronyms
•   AFRL – Air Force Research Laboratory
•   APL – Applied Physics Laboratory
•   ARC – Ames Research Center
•   CESE – Center for Experimental Software
    Engineering




                                          20
Acronyms (2)
• CHIPS - Cosmic Hot Interstellar Plasma
  Spectrometer
• CLARREO - Climate Absolute Radiance
  and Refractivity Observatory
• COTS – Commercial Off-The-Shelf
• DSILCAS – Distributed System Integrated
  Lab Communications Adapter Set
• Dyn-SAVE – Dynamic SAVE
                                        21
Acronyms (3)
• GLAST - Gamma-ray Large Area Space
  Telescope
• GMSEC – Goddard Mission Services
  Evolution Center
• GOTS – Government Off-The-Shelf
• GPM - Global Precipitation Measurement
• GSFC – Goddard Space Flight Center
• IV& V – Independent V & V
                                           22
Acronyms (4)
• JSC – Johnson Space Center
• LADEE - Lunar Atmosphere and Dust
  Environment Explorer
• LDCM - Landsat Data Continuity Mission
• LRC - Langley Research Center
• LRO - Lunar Reconnaissance Orbiter
• MMOC – Multi-Mission Operations Center
• MMS - Magnetospheric MultiScale
                                       23
Acronyms (5)
• MSFC - Marshall Space Flight Center
• RBSP – Radiation Belt Storm Probes
• SAVE – Software Architecture
  Visualization and Evaluation
• SDO – Solar Dynamics Observatory
• TRMM – Tropical Rainfall Measuring
  Mission
• V & V – Verification and Validation
                                        24

Mais conteúdo relacionado

Mais procurados

Vansteen communication
Vansteen communicationVansteen communication
Vansteen communicationgidi899
 
Gnu linux for safety related systems
Gnu linux for safety related systemsGnu linux for safety related systems
Gnu linux for safety related systemsDTQ4
 
16.Distributed System Structure
16.Distributed System Structure16.Distributed System Structure
16.Distributed System StructureSenthil Kanth
 
Ultra-scalable Architectures for Telecommunications and Web 2.0 Services
Ultra-scalable Architectures for Telecommunications and Web 2.0 ServicesUltra-scalable Architectures for Telecommunications and Web 2.0 Services
Ultra-scalable Architectures for Telecommunications and Web 2.0 ServicesMauricio Arango
 
Adv multimedia2k7 1_s
Adv multimedia2k7 1_sAdv multimedia2k7 1_s
Adv multimedia2k7 1_sKevin Man
 
2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software concepts2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software conceptsPrajakta Rane
 
Software architecture unit 4
Software architecture unit 4Software architecture unit 4
Software architecture unit 4yawani05
 
OSGi Applications Clustering using Distributed Shared Memory
OSGi Applications Clustering using Distributed Shared MemoryOSGi Applications Clustering using Distributed Shared Memory
OSGi Applications Clustering using Distributed Shared MemoryAnthony Gelibert
 
Pc.&.network.technology june.2012
Pc.&.network.technology june.2012Pc.&.network.technology june.2012
Pc.&.network.technology june.2012NATHEEN
 
A DSEL for Addressing the Problems Posed by Parallel Architectures
A DSEL for Addressing the Problems Posed by Parallel ArchitecturesA DSEL for Addressing the Problems Posed by Parallel Architectures
A DSEL for Addressing the Problems Posed by Parallel ArchitecturesJason Hearne-McGuiness
 
Folt - Open TMS - A presentation for universities
Folt - Open TMS - A presentation for universitiesFolt - Open TMS - A presentation for universities
Folt - Open TMS - A presentation for universitiesKlemens Waldhör
 
A framework for distributed control and building performance simulation
A framework for distributed control and building performance simulationA framework for distributed control and building performance simulation
A framework for distributed control and building performance simulationDaniele Gianni
 
dotnet_remoting
dotnet_remotingdotnet_remoting
dotnet_remotingOPENLANE
 
Message Passing, Remote Procedure Calls and Distributed Shared Memory as Com...
Message Passing, Remote Procedure Calls and  Distributed Shared Memory as Com...Message Passing, Remote Procedure Calls and  Distributed Shared Memory as Com...
Message Passing, Remote Procedure Calls and Distributed Shared Memory as Com...Sehrish Asif
 
Distributed Shared Memory – A Survey and Implementation Using Openshmem
Distributed Shared Memory – A Survey and Implementation Using OpenshmemDistributed Shared Memory – A Survey and Implementation Using Openshmem
Distributed Shared Memory – A Survey and Implementation Using OpenshmemIJERA Editor
 
Mission planning of autonomous quadrotors
Mission planning of autonomous quadrotorsMission planning of autonomous quadrotors
Mission planning of autonomous quadrotorsIvano Malavolta
 

Mais procurados (19)

Vansteen communication
Vansteen communicationVansteen communication
Vansteen communication
 
WCRE08.ppt
WCRE08.pptWCRE08.ppt
WCRE08.ppt
 
Gnu linux for safety related systems
Gnu linux for safety related systemsGnu linux for safety related systems
Gnu linux for safety related systems
 
16.Distributed System Structure
16.Distributed System Structure16.Distributed System Structure
16.Distributed System Structure
 
Ultra-scalable Architectures for Telecommunications and Web 2.0 Services
Ultra-scalable Architectures for Telecommunications and Web 2.0 ServicesUltra-scalable Architectures for Telecommunications and Web 2.0 Services
Ultra-scalable Architectures for Telecommunications and Web 2.0 Services
 
Adv multimedia2k7 1_s
Adv multimedia2k7 1_sAdv multimedia2k7 1_s
Adv multimedia2k7 1_s
 
fj
fjfj
fj
 
2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software concepts2. Distributed Systems Hardware & Software concepts
2. Distributed Systems Hardware & Software concepts
 
Software architecture unit 4
Software architecture unit 4Software architecture unit 4
Software architecture unit 4
 
OSGi Applications Clustering using Distributed Shared Memory
OSGi Applications Clustering using Distributed Shared MemoryOSGi Applications Clustering using Distributed Shared Memory
OSGi Applications Clustering using Distributed Shared Memory
 
Pc.&.network.technology june.2012
Pc.&.network.technology june.2012Pc.&.network.technology june.2012
Pc.&.network.technology june.2012
 
A DSEL for Addressing the Problems Posed by Parallel Architectures
A DSEL for Addressing the Problems Posed by Parallel ArchitecturesA DSEL for Addressing the Problems Posed by Parallel Architectures
A DSEL for Addressing the Problems Posed by Parallel Architectures
 
Folt - Open TMS - A presentation for universities
Folt - Open TMS - A presentation for universitiesFolt - Open TMS - A presentation for universities
Folt - Open TMS - A presentation for universities
 
A framework for distributed control and building performance simulation
A framework for distributed control and building performance simulationA framework for distributed control and building performance simulation
A framework for distributed control and building performance simulation
 
Stream oriented communication
Stream oriented communicationStream oriented communication
Stream oriented communication
 
dotnet_remoting
dotnet_remotingdotnet_remoting
dotnet_remoting
 
Message Passing, Remote Procedure Calls and Distributed Shared Memory as Com...
Message Passing, Remote Procedure Calls and  Distributed Shared Memory as Com...Message Passing, Remote Procedure Calls and  Distributed Shared Memory as Com...
Message Passing, Remote Procedure Calls and Distributed Shared Memory as Com...
 
Distributed Shared Memory – A Survey and Implementation Using Openshmem
Distributed Shared Memory – A Survey and Implementation Using OpenshmemDistributed Shared Memory – A Survey and Implementation Using Openshmem
Distributed Shared Memory – A Survey and Implementation Using Openshmem
 
Mission planning of autonomous quadrotors
Mission planning of autonomous quadrotorsMission planning of autonomous quadrotors
Mission planning of autonomous quadrotors
 

Destaque

Exploiting Cryptographic Misuse - An Example
Exploiting Cryptographic Misuse - An ExampleExploiting Cryptographic Misuse - An Example
Exploiting Cryptographic Misuse - An ExampleDharmalingam Ganesan
 
Secure application programming in the presence of side channel attacks
Secure application programming in the presence of side channel attacksSecure application programming in the presence of side channel attacks
Secure application programming in the presence of side channel attacksDharmalingam Ganesan
 
Automated testing of NASA Software - part 2
Automated testing of NASA Software - part 2Automated testing of NASA Software - part 2
Automated testing of NASA Software - part 2Dharmalingam Ganesan
 
Explaining my Phd Thesis to layman
Explaining my Phd Thesis to laymanExplaining my Phd Thesis to layman
Explaining my Phd Thesis to laymanDharmalingam Ganesan
 
Interface-Implementation Contract Checking
Interface-Implementation Contract CheckingInterface-Implementation Contract Checking
Interface-Implementation Contract CheckingDharmalingam Ganesan
 
Testing of C software components using Models
Testing of C software components using ModelsTesting of C software components using Models
Testing of C software components using ModelsDharmalingam Ganesan
 
Model-based Testing of a Software Bus - Applied on Core Flight Executive
Model-based Testing of a Software Bus - Applied on Core Flight ExecutiveModel-based Testing of a Software Bus - Applied on Core Flight Executive
Model-based Testing of a Software Bus - Applied on Core Flight ExecutiveDharmalingam Ganesan
 
Load-time Hacking using LD_PRELOAD
Load-time Hacking using LD_PRELOADLoad-time Hacking using LD_PRELOAD
Load-time Hacking using LD_PRELOADDharmalingam Ganesan
 
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case StudyModel-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case StudyDharmalingam Ganesan
 
Linux binary analysis and exploitation
Linux binary analysis and exploitationLinux binary analysis and exploitation
Linux binary analysis and exploitationDharmalingam Ganesan
 
Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Sudarshan Dhondaley
 

Destaque (11)

Exploiting Cryptographic Misuse - An Example
Exploiting Cryptographic Misuse - An ExampleExploiting Cryptographic Misuse - An Example
Exploiting Cryptographic Misuse - An Example
 
Secure application programming in the presence of side channel attacks
Secure application programming in the presence of side channel attacksSecure application programming in the presence of side channel attacks
Secure application programming in the presence of side channel attacks
 
Automated testing of NASA Software - part 2
Automated testing of NASA Software - part 2Automated testing of NASA Software - part 2
Automated testing of NASA Software - part 2
 
Explaining my Phd Thesis to layman
Explaining my Phd Thesis to laymanExplaining my Phd Thesis to layman
Explaining my Phd Thesis to layman
 
Interface-Implementation Contract Checking
Interface-Implementation Contract CheckingInterface-Implementation Contract Checking
Interface-Implementation Contract Checking
 
Testing of C software components using Models
Testing of C software components using ModelsTesting of C software components using Models
Testing of C software components using Models
 
Model-based Testing of a Software Bus - Applied on Core Flight Executive
Model-based Testing of a Software Bus - Applied on Core Flight ExecutiveModel-based Testing of a Software Bus - Applied on Core Flight Executive
Model-based Testing of a Software Bus - Applied on Core Flight Executive
 
Load-time Hacking using LD_PRELOAD
Load-time Hacking using LD_PRELOADLoad-time Hacking using LD_PRELOAD
Load-time Hacking using LD_PRELOAD
 
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case StudyModel-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
 
Linux binary analysis and exploitation
Linux binary analysis and exploitationLinux binary analysis and exploitation
Linux binary analysis and exploitation
 
Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2
 

Semelhante a Architecture Analysis of Systems based on Publish-Subscribe Systems

Analysis of Testability of a Flight Software Product Line
Analysis of Testability of a Flight Software Product LineAnalysis of Testability of a Flight Software Product Line
Analysis of Testability of a Flight Software Product LineDharmalingam Ganesan
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsProlifics
 
Psi multi accessgateway_casestudy
Psi multi accessgateway_casestudyPsi multi accessgateway_casestudy
Psi multi accessgateway_casestudyPrimesoftinc
 
Singularity Rethinking The Software Stack
Singularity    Rethinking The  Software  StackSingularity    Rethinking The  Software  Stack
Singularity Rethinking The Software Stackalanocu
 
FredMcLainResumeB
FredMcLainResumeBFredMcLainResumeB
FredMcLainResumeBFred McLain
 
MingLiuResume2016
MingLiuResume2016MingLiuResume2016
MingLiuResume2016Ming Liu
 
manu_resume
manu_resumemanu_resume
manu_resumeManu VS
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 
Psi cgl test_auto_casestudy_v01
Psi cgl test_auto_casestudy_v01Psi cgl test_auto_casestudy_v01
Psi cgl test_auto_casestudy_v01Primesoftinc
 
Arch stylesandpatternsmi
Arch stylesandpatternsmiArch stylesandpatternsmi
Arch stylesandpatternsmilord14383
 
2012 06-15-jazoon12-sub138-eranea-large-apps-migration
2012 06-15-jazoon12-sub138-eranea-large-apps-migration2012 06-15-jazoon12-sub138-eranea-large-apps-migration
2012 06-15-jazoon12-sub138-eranea-large-apps-migrationDidier Durand
 
CiklumJavaSat15112011:Alexey Trusov-Code quality management
CiklumJavaSat15112011:Alexey Trusov-Code quality managementCiklumJavaSat15112011:Alexey Trusov-Code quality management
CiklumJavaSat15112011:Alexey Trusov-Code quality managementCiklum Ukraine
 
The story of SonarQube told to a DevOps Engineer
The story of SonarQube told to a DevOps EngineerThe story of SonarQube told to a DevOps Engineer
The story of SonarQube told to a DevOps EngineerManu Pk
 
OpenHPC: A Comprehensive System Software Stack
OpenHPC: A Comprehensive System Software StackOpenHPC: A Comprehensive System Software Stack
OpenHPC: A Comprehensive System Software Stackinside-BigData.com
 
Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient H...
Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient H...Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient H...
Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient H...Ákos Horváth
 

Semelhante a Architecture Analysis of Systems based on Publish-Subscribe Systems (20)

Analysis of Testability of a Flight Software Product Line
Analysis of Testability of a Flight Software Product LineAnalysis of Testability of a Flight Software Product Line
Analysis of Testability of a Flight Software Product Line
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere tools
 
Psi multi accessgateway_casestudy
Psi multi accessgateway_casestudyPsi multi accessgateway_casestudy
Psi multi accessgateway_casestudy
 
Singularity Rethinking The Software Stack
Singularity    Rethinking The  Software  StackSingularity    Rethinking The  Software  Stack
Singularity Rethinking The Software Stack
 
report
reportreport
report
 
FredMcLainResumeB
FredMcLainResumeBFredMcLainResumeB
FredMcLainResumeB
 
Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model
 
MingLiuResume2016
MingLiuResume2016MingLiuResume2016
MingLiuResume2016
 
System software
System softwareSystem software
System software
 
manu_resume
manu_resumemanu_resume
manu_resume
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Psi cgl test_auto_casestudy_v01
Psi cgl test_auto_casestudy_v01Psi cgl test_auto_casestudy_v01
Psi cgl test_auto_casestudy_v01
 
Sonar En
Sonar EnSonar En
Sonar En
 
Arch stylesandpatternsmi
Arch stylesandpatternsmiArch stylesandpatternsmi
Arch stylesandpatternsmi
 
final proposal-cloud storage
final proposal-cloud storagefinal proposal-cloud storage
final proposal-cloud storage
 
2012 06-15-jazoon12-sub138-eranea-large-apps-migration
2012 06-15-jazoon12-sub138-eranea-large-apps-migration2012 06-15-jazoon12-sub138-eranea-large-apps-migration
2012 06-15-jazoon12-sub138-eranea-large-apps-migration
 
CiklumJavaSat15112011:Alexey Trusov-Code quality management
CiklumJavaSat15112011:Alexey Trusov-Code quality managementCiklumJavaSat15112011:Alexey Trusov-Code quality management
CiklumJavaSat15112011:Alexey Trusov-Code quality management
 
The story of SonarQube told to a DevOps Engineer
The story of SonarQube told to a DevOps EngineerThe story of SonarQube told to a DevOps Engineer
The story of SonarQube told to a DevOps Engineer
 
OpenHPC: A Comprehensive System Software Stack
OpenHPC: A Comprehensive System Software StackOpenHPC: A Comprehensive System Software Stack
OpenHPC: A Comprehensive System Software Stack
 
Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient H...
Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient H...Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient H...
Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient H...
 

Mais de Dharmalingam Ganesan

Reverse Architecting using Relation Algebra.pdf
Reverse Architecting using Relation Algebra.pdfReverse Architecting using Relation Algebra.pdf
Reverse Architecting using Relation Algebra.pdfDharmalingam Ganesan
 
Cyclic Attacks on the RSA Trapdoor Function
Cyclic Attacks on the RSA Trapdoor FunctionCyclic Attacks on the RSA Trapdoor Function
Cyclic Attacks on the RSA Trapdoor FunctionDharmalingam Ganesan
 
An Analysis of RSA Public Exponent e
An Analysis of RSA Public Exponent eAn Analysis of RSA Public Exponent e
An Analysis of RSA Public Exponent eDharmalingam Ganesan
 
An Analysis of Secure Remote Password (SRP)
An Analysis of Secure Remote Password (SRP)An Analysis of Secure Remote Password (SRP)
An Analysis of Secure Remote Password (SRP)Dharmalingam Ganesan
 
How do computers exchange secrets using Math?
How do computers exchange secrets using Math?How do computers exchange secrets using Math?
How do computers exchange secrets using Math?Dharmalingam Ganesan
 
On the Secrecy of RSA Private Keys
On the Secrecy of RSA Private KeysOn the Secrecy of RSA Private Keys
On the Secrecy of RSA Private KeysDharmalingam Ganesan
 
Computing the Square Roots of Unity to break RSA using Quantum Algorithms
Computing the Square Roots of Unity to break RSA using Quantum AlgorithmsComputing the Square Roots of Unity to break RSA using Quantum Algorithms
Computing the Square Roots of Unity to break RSA using Quantum AlgorithmsDharmalingam Ganesan
 
Analysis of Short RSA Secret Exponent d
Analysis of Short RSA Secret Exponent dAnalysis of Short RSA Secret Exponent d
Analysis of Short RSA Secret Exponent dDharmalingam Ganesan
 
Dependency Analysis of RSA Private Variables
Dependency Analysis of RSA Private VariablesDependency Analysis of RSA Private Variables
Dependency Analysis of RSA Private VariablesDharmalingam Ganesan
 
Solutions to online rsa factoring challenges
Solutions to online rsa factoring challengesSolutions to online rsa factoring challenges
Solutions to online rsa factoring challengesDharmalingam Ganesan
 

Mais de Dharmalingam Ganesan (20)

.NET Deserialization Attacks
.NET Deserialization Attacks.NET Deserialization Attacks
.NET Deserialization Attacks
 
Reverse Architecting using Relation Algebra.pdf
Reverse Architecting using Relation Algebra.pdfReverse Architecting using Relation Algebra.pdf
Reverse Architecting using Relation Algebra.pdf
 
How to exploit rand()?
How to exploit rand()?How to exploit rand()?
How to exploit rand()?
 
Cyclic Attacks on the RSA Trapdoor Function
Cyclic Attacks on the RSA Trapdoor FunctionCyclic Attacks on the RSA Trapdoor Function
Cyclic Attacks on the RSA Trapdoor Function
 
An Analysis of RSA Public Exponent e
An Analysis of RSA Public Exponent eAn Analysis of RSA Public Exponent e
An Analysis of RSA Public Exponent e
 
An Analysis of Secure Remote Password (SRP)
An Analysis of Secure Remote Password (SRP)An Analysis of Secure Remote Password (SRP)
An Analysis of Secure Remote Password (SRP)
 
Thank-a-Gram
Thank-a-GramThank-a-Gram
Thank-a-Gram
 
Active Attacks on DH Key Exchange
Active Attacks on DH Key ExchangeActive Attacks on DH Key Exchange
Active Attacks on DH Key Exchange
 
Can I write to a read only file ?
Can I write to a read only file ?Can I write to a read only file ?
Can I write to a read only file ?
 
How do computers exchange secrets using Math?
How do computers exchange secrets using Math?How do computers exchange secrets using Math?
How do computers exchange secrets using Math?
 
On the Secrecy of RSA Private Keys
On the Secrecy of RSA Private KeysOn the Secrecy of RSA Private Keys
On the Secrecy of RSA Private Keys
 
Computing the Square Roots of Unity to break RSA using Quantum Algorithms
Computing the Square Roots of Unity to break RSA using Quantum AlgorithmsComputing the Square Roots of Unity to break RSA using Quantum Algorithms
Computing the Square Roots of Unity to break RSA using Quantum Algorithms
 
Analysis of Short RSA Secret Exponent d
Analysis of Short RSA Secret Exponent dAnalysis of Short RSA Secret Exponent d
Analysis of Short RSA Secret Exponent d
 
Dependency Analysis of RSA Private Variables
Dependency Analysis of RSA Private VariablesDependency Analysis of RSA Private Variables
Dependency Analysis of RSA Private Variables
 
Analysis of Shared RSA Modulus
Analysis of Shared RSA ModulusAnalysis of Shared RSA Modulus
Analysis of Shared RSA Modulus
 
RSA Game using an Oracle
RSA Game using an OracleRSA Game using an Oracle
RSA Game using an Oracle
 
RSA Two Person Game
RSA Two Person GameRSA Two Person Game
RSA Two Person Game
 
RSA without Integrity Checks
RSA without Integrity ChecksRSA without Integrity Checks
RSA without Integrity Checks
 
RSA without Padding
RSA without PaddingRSA without Padding
RSA without Padding
 
Solutions to online rsa factoring challenges
Solutions to online rsa factoring challengesSolutions to online rsa factoring challenges
Solutions to online rsa factoring challenges
 

Architecture Analysis of Systems based on Publish-Subscribe Systems

  • 1. Architectural Analysis of Systems based on the Publisher-Subscriber Style Fraunhofer CESE NASA Goddard Space Flight Center Dharmalingam Ganesan Lamont Ruley Mikael Lindvall Robert Wiegand Vuong Ly Tina Tsui © 2010 Fraunhofer USA, Inc. 1 Center for Experimental Software Engineering
  • 2. Background • Architectural styles offer reusable solutions to recurring design problems • Architectural styles define: – the roles of components and connectors – the structure or topology – the interaction behavior of involved elements • Pipe-and-Filter, Publish-Subscribe, Client- Server are some architectural styles © 2010 Fraunhofer USA, Inc. 2 Center for Experimental Software Engineering
  • 3. Model of Publish-Subscribe Style • Components publish or subscribe to messages with relevant subjects/topics • Components communicate indirectly by publishing and subscribing to messages • Message delivery taken care by an intermediate software bus • Indirect communication increases flexibility – ease of component substitution & integration – attractive for developing a family of systems © 2010 Fraunhofer USA, Inc. 3 Center for Experimental Software Engineering
  • 4. Problem • Increased flexibility of the pub-sub style decreases analyzability – difficult to extract dependencies among components – difficult to predict emerging behavior if several components are using the bus • E.g., timing problems, missed messages, etc. • Need an approach for systematically analyzing pub-sub style implementations – NASA’s GMSEC is one example system © 2010 Fraunhofer USA, Inc. 4 Center for Experimental Software Engineering
  • 5. Approach • Derive reusable analysis questions from the definition of the style • Structural questions are statically answerable • Behavioral questions are best answered using dynamic analysis – by monitoring the running system with injected probes that generate runtime traces • Static analysis is used to guide dynamic analysis 5 © 2010 Fraunhofer USA, Inc. Center for Experimental Software Engineering
  • 6. Elements of Software Bus Interfaces for Connection Message Publishing Management Buffer and Management Subscribing Message Subscription Routing Management Management  Typical elements we can expect in a software bus  Challenge is to locate corresponding code elements © 2010 Fraunhofer USA, Inc. 6 Center for Experimental Software Engineering
  • 7. Analysis Questions from the Style • Are there any middleware used for implementing the software bus? • If middleware is used, is there any middleware abstraction layer? • Can publishers and subscribers be implemented in different programming languages? • Which subscribers receive messages from which publishers and in what order? © 2010 Fraunhofer USA, Inc. 7 Center for Experimental Software Engineering
  • 8. Static Analysis Strategies Goal of static analysis is to bridge the abstraction gap between source code concepts and abstract elements of the software bus Fraunhofer’s experience repository contains data about several external entities (table – small excerpt for middleware technologies) Build abstractions using dependencies to external entities Middleware Vendor Class Name Method Name Purpose Tibco Smart Sockets (SS) SSConnection SSConnection Initialize connection to the middleware Tibco SS SmartSockets::TipcSrv send Publishes the given message Tibco SS SmartSockets::TipcSrv setSubscribe Subscribes to the given message Apache Active MQ CMSConnection CMSConnection Initialize connection to the middleware Apache Active MQ cms::Session createProducer Publishes the given message Apache Active MQ cms::MessageConsumer setMessageListener Subscribes to the given message © 2010 Fraunhofer USA, Inc. 8 Center for Experimental Software Engineering
  • 9. Dynamic Analysis Strategies • Run-time traces are collected by instrumentation using static analysis • Each run-time event is treated as a message • Events of pub-sub style highly interleaved • Construction of Colored Petri Nets (CP- nets) for recognizing pre-planned patterns • CP-nets produce the actual architecture at run-time © 2010 Fraunhofer USA, Inc. 9 Center for Experimental Software Engineering
  • 10. Dynamic Analysis - Overview GUI using Dyn-SAVE Style Constraints Checker Abstraction Builder using CP-nets using CP-nets Run-time Events Run-time Event Collector (e.g., Call Event) (RECO) component published on the bus Probes using static analysis System  This set-up enables online dynamic analysis needed for dynamically reconfigurable systems:  Architecture extraction and analysis can be performed at run-time © 2010 Fraunhofer USA, Inc. 10 Center for Experimental Software Engineering
  • 11. Analysis of NASA’s GMSEC • GMSEC API is a reusable framework for missions inside and outside NASA • Publishers/Subscribers can be programmed in different languages (C/C++, Java, Perl) • Objectives of the analysis: – Independent review of the implementation quality – Report structural and behavioral issues © 2010 Fraunhofer USA, Inc. 11 Center for Experimental Software Engineering
  • 12. GMSEC’s NASA and Other Government Users Operational In Development Planned KEY (since 2005) (2009) (ongoing meetings) TRMM Terra Aqua SMEX Series SDO Aura Clarreo ST-5 Missions MMOC GLAST (multiple) GPM ISS (MSFC) LRO-em MMS CSTL White Sands GSFC Server Cx Const. Farm and Labs FDF ExternalFacilities of Labs OTF (JSC) WFF RCC Air Force NRO Homeland ORS Security Many missions depend on GMSEC! © 2010 Fraunhofer USA, Inc. 12 Center for Experimental Software Engineering
  • 13. GMSEC and the Satellite Control Domain MSFC Avtec Systems DesignAMERICA Front-Ends, Planning & TLM/CMD Flight Analysis & Simulators Scheduling Systems Dynamics Trending Message Bus via API Test Monitoring Situational Automation Tools Tools Tools Tools Nearly all COTS command and control systems are GMSEC compatible Missions expect that components behave as specified! © 2010 Fraunhofer USA, Inc. 13 Center for Experimental Software Engineering
  • 14. Structure of the GMSEC API Connection  Connection is an abstract interface GMSEC/Wrapper tibco_rv websphere7 tibco_ss Publishers/Subscribers program to the abstract ice mb soap activemq interface External MQ Series Active MQ  All middleware APIs are wrapped ICE socket.h stdsoap2.h  Binding to a selected ICEStorm Tibco smart ICEUtil Tibco Rv sockets wrapper using dynamic loading  Novel vendor independent This structure was discovered from code middleware abstraction layer  Helps NASA’s missions to avoid vendor lock-in © 2010 Fraunhofer USA, Inc. 14 Center for Experimental Software Engineering
  • 15. Dynamic Analysis of the GMSEC Software Bus (for “trace” messages) GEDAT CAT GREAT … RECO RECO collects run-time traces RECO subscribes to trace messages Software Bus (for “real” messages)  AspectJ was used to inject probe code into the bytecode of applications (bubbles)  “Trace” messages and “real” messages are transmitted in different S/W bus to avoid any communication conflicts © 2010 Fraunhofer USA, Inc. 15 Center for Experimental Software Engineering
  • 16. Discovered Views - sample Pid_7024 (RECO) Pid_7720(SA) Pid_7252 (CAT) Pid_4704 (CAT GUI) Pid_3804 (GEDAT) Connection port for publishing to the software bus Connection port for subscribing to the software bus  Automatically extracted at run-time using CP-nets  Developers found it useful to understand the actual run-time structure  One “unexpected” connection was found  This view is not statically extractable because connections are established at run-time © 2010 Fraunhofer USA, Inc. 16 Center for Experimental Software Engineering
  • 17. Detection of a High-Priority Bug • Our CP-nets detected a bug due to: – inconsistency in the implementation of the same interface by different middleware wrappers • One implementation allowed consecutive calls to “subscribe” without an intermediate “unsubscribe” • Another implementation did not allow this • Resulting in component substitution failure © 2010 Fraunhofer USA, Inc. 17 Center for Experimental Software Engineering
  • 18. Conclusion • Style based analysis makes reverse engineering focus and scalable • Static analysis is used to: – Bridge the abstraction gap with implementation – Identify code location to inject probes • Dynamic analysis is used to discover component-connector views • Approach helped in finding a high-priority bug (which is fixed now) © 2010 Fraunhofer USA, Inc. 18 Center for Experimental Software Engineering
  • 19. Acknowledgement • Lisa Montgomery of the NASA IV & V • Sally Godfrey of the NASA GSFC • All members of the GMSEC team © 2010 Fraunhofer USA, Inc. 19 Center for Experimental Software Engineering
  • 20. Acronyms • AFRL – Air Force Research Laboratory • APL – Applied Physics Laboratory • ARC – Ames Research Center • CESE – Center for Experimental Software Engineering 20
  • 21. Acronyms (2) • CHIPS - Cosmic Hot Interstellar Plasma Spectrometer • CLARREO - Climate Absolute Radiance and Refractivity Observatory • COTS – Commercial Off-The-Shelf • DSILCAS – Distributed System Integrated Lab Communications Adapter Set • Dyn-SAVE – Dynamic SAVE 21
  • 22. Acronyms (3) • GLAST - Gamma-ray Large Area Space Telescope • GMSEC – Goddard Mission Services Evolution Center • GOTS – Government Off-The-Shelf • GPM - Global Precipitation Measurement • GSFC – Goddard Space Flight Center • IV& V – Independent V & V 22
  • 23. Acronyms (4) • JSC – Johnson Space Center • LADEE - Lunar Atmosphere and Dust Environment Explorer • LDCM - Landsat Data Continuity Mission • LRC - Langley Research Center • LRO - Lunar Reconnaissance Orbiter • MMOC – Multi-Mission Operations Center • MMS - Magnetospheric MultiScale 23
  • 24. Acronyms (5) • MSFC - Marshall Space Flight Center • RBSP – Radiation Belt Storm Probes • SAVE – Software Architecture Visualization and Evaluation • SDO – Solar Dynamics Observatory • TRMM – Tropical Rainfall Measuring Mission • V & V – Verification and Validation 24