SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Jython for Embedded
     Software Validation
               Raniero Virgilio
                  IAG/ECG/PPD SW


            Pycon Quattro, 8/5/2010



1
Raniero Virgilio
       My Job
       • Software Engineer in Intel Shannon, Ireland
       • Responsible for Test Automation infrastructure

       My Team
       • PPD (Performance Product Division)

       Embedded Software
       • Complete SOCs for security, communications,
         storage and embedded designs
       • http://www.intel.com/embedded/index.htm


    Intel Architecture Group
2
Agenda

                • Validation in embedded systems
                • Runtime Plug-in model
                • Runtime Plug-in model with Jython
                • Jython and Eclipse
                • Results




    Intel Architecture Group
3
Validation in
                               embedded systems
                               • A challenging environment
                               • Typical scenario
                               • Requirements and solutions




    Intel Architecture Group
4
A challenging environment

    Multiple hw/sw deployments
    • Configuration set up needs to be fast and reliable
    • Support for different OS types and versions

    Consistent cooperation
    • Several teams working on the same infrastructure
    • Synchronization with overseas groups




    Intel Architecture Group
5
Test Automation scenario
                                          XML-RPC session




                                                                       Server1 (Windows)     Traffic Generator 1


                                          XML-RPC session




                                                            Server2 (Windows)         Traffic Generator 2




                                                Telnet session
                                 Test                                     DUT1
Test Execution
                       XML-RPC   Driver
   Reports                                                                (Linux/Windows/FreeBSD)
                       session




                                                Telnet session
                                                                            DUT2
                                                                            (Linux/Windows/FreeBSD)



                                                Telnet session
                                                                            DUT3
                                                                            (Linux/Windows/FreeBSD)



    Intel Architecture Group
6
Test Automation requirements
     Programming language
     • Platform-independent
     • Libraries for connectivity and string manipulation

     Test Framework design
     • OOP to maximize reusability of test code
     • Platform runtime extendibility

     Sustainable implementation
     • An effective interface between test execution
       (local to DUT) and test reporting (distributed)
     • Customizable open source solution
    Intel Architecture Group
7
Proposed solution
     Programming language
     • Python
        – telnetlib, xmlrpclib, SimpleXMLRPCServer
        – re, xml.dom.minidom


     Test Framework design
     • Runtime plug-in model

     Sustainable implementation
     • Jython embedded in Eclipse
        – Jython is a Python interpreter written in 100% pure Java


    Intel Architecture Group
8
Runtime plug-in
                                   model
                                 • Definition
                                 • Design Pattern




    Intel Architecture Group
9
Runtime Plug-in Model

     The term plug-in refers to a type of program
       that contributes code to the system and
            adds a special capability to it.


         • The plug-in is unknown at compile-time of the
           application for which the plug-in is designed.

         • Plug-ins are dynamically plugged into the
           application they are designed for at runtime

         • The key for this model is Dynamic Code Loading

     Intel Architecture Group
10
Design Pattern
                                   • Extendibility
                                     – Application capabilities are defined
                                       by the supported Plug-in
                                     – Plug-in can be loaded and unloaded
                                       at runtime
                                   • Plug-in development
                                     – Each Plug-in shall implement a
                                       specified interface
                                     – The plug-in delegates the
                                       Application for high-level services
                                   • Parallel life-cycle
                                     – Application and Plug-ins can be
                                       developed independently


     Intel Architecture Group
11
Runtime Plug-in
                                Model with Jython
                                • Dynamic code loading in
                                  Java and Jython
                                • Multithreading




     Intel Architecture Group
12
Dynamic code loading in Java
 • Runtime source compilation
     – StandardJavaFileManager handles the
       source code
     – JavaCompiler executes the compilation
       and creates a class file
     – DiagnosticCollector gathers compilation
       information

     • Class file deployment
       – A new Classloader has to be defined
       – It need to extend the previous one with the new class file




     Intel Architecture Group
13
Dynamic code loading in Jython
 • One step task
     – The PluginHandler instantiates one PythonInterpreter
     – The Plug-in path is added in the PythonInterpreter sys.path
     – The Plug-in is imported in the embedded Python environment
 • Lower complexity
     – Implementation is much easier
     – Code can be modified “on-the-fly” and reloaded
     – First time Plug-in loading is usually quicker on Jython




     Intel Architecture Group
14
Multithreaded environment

     • Parallel PluginHandlers
       – Independent Jython environments’
         setups
       – Each PluginHandler defines an
         autonomous environment


                                               Java Thread

• Multiple task execution
     – When PluginHandler invokes a run() the execution is
       encapsulated in a Java Thread
     – Plug-ins expand the application concurrently



     Intel Architecture Group
15
Jython and Eclipse

                                • XTP architecture
                                • The Execution Engines
                                • The JythonExchanger




     Intel Architecture Group
16
The eXtendible Test Platform (XTP)
                                                  TestCase
                                                    Code                     TestCase
                                                                               Docs
     Java
     Jython




                            Traffic
                          Generator A

                                                                              C Files
                                        DUT A   DUT B        DUT C   DUT D




     Intel Architecture Group
17
The Execution Engine in XTP




                                    DUT A   DUT B


 • XTP                   28.08.09



     – provides high-level test services (logging, reporting,
       multithreading) and an interface with frontend
 • Execution Engine
     – a self-contained software package, written in Python, that
       implements the actual test logic and expands XTP enabling
       communication of the test platform with DUTs, servers and test
       equipments


     Intel Architecture Group
18
Plugging an Execution Engine




                                           DUT A   DUT B



         – A PythonInterpreter is created by XTP
                                28.08.09




         – The activation sequences contained in the EE Manifest are
           executed in the PythonInterpreter
         – An instance of the (Java) JythonInterpreter class is created
           by XTP and deployed into the relevant PythonInterpreter



     Intel Architecture Group
19
The jythonExchanger




      – The jythonExchanger is the interface between the EE and the
        XTP environment
      – Each EE uses it to access XTP high-level features
      – XTP infrastructure uses it to retrieve test results from EEs and
        show them in graphs and reports
      – The overall consistency of the system is assured by the
        Jython characteristic to be a 100% pure Java implementation.


     Intel Architecture Group
20
Results

                                • Main benefits
                                • Common risks




     Intel Architecture Group
21
Sustainable architecture
                          40                                                   40

                          39                                                   39

                          38                                                   38




                                                             Java Heap Space
        Java Heap Space


                          37                                                   37

                          36                                                   36

                          35                                                   35

                          34                                                   34

                          33                                                   33

                          32                                                   32
                                0   1   2        3   4   5                          5   4   3        2   1   0

                                        EEs Number                                          EEs Number




                    • Example: load/unload 5 plug-ins at runtime
                               – Memory request increases without “exploding”
                               – Memory is freed when plug-ins are deactivated




     Intel Architecture Group
22
Major benefits

     “Calibrate your technology”

     • Choose the solution that best fits your needs
         – Python threads or Java threads (or Eclipse Jobs)?
     • Transparent Python layer on DUTs
         – XML-RPC Server + os.popen() have small CPU overhead
     • Plug-in lifecycle
         – Runtime plug-ins promote validation through cooperation
     • Short rump-up time
         – Perl users start using Python very intuitively




     Intel Architecture Group
23
Common risks

     “Design your architecture”

     • Test planning
         – To make the most of the Plug-in design pattern, point out
           common test domains in advance
     • Long-term investment
         – Platform stability requires a significant effort
     • Keep code under control
         – Review carefully test code before integrating it
     • Right-Size your hardware
         – Concurrent executions may require performing machines



     Intel Architecture Group
24
Q&A
                            (raniero.virgilio@intel.com)




     Intel Architecture Group
25
Jython for embedded software validation

Contenu connexe

Tendances

Jtag Tools For Linux
Jtag Tools For LinuxJtag Tools For Linux
Jtag Tools For Linuxsheilamia
 
Safe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereSafe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereAdaCore
 
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...GlobalLogic Ukraine
 
Skype testing overview
Skype testing overviewSkype testing overview
Skype testing overviewQA Club Kiev
 
Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...Design World
 
Dalvik Vm & Jit
Dalvik Vm & JitDalvik Vm & Jit
Dalvik Vm & JitAnkit Somani
 
LDTT : A Low Level Driver Unit Testing Tool
LDTT : A Low Level Driver Unit Testing Tool LDTT : A Low Level Driver Unit Testing Tool
LDTT : A Low Level Driver Unit Testing Tool ijseajournal
 
Introduction to Android by Demian Neidetcher
Introduction to Android by Demian NeidetcherIntroduction to Android by Demian Neidetcher
Introduction to Android by Demian NeidetcherMatthew McCullough
 
System verilog important
System verilog importantSystem verilog important
System verilog importantelumalai7
 
A Skype case study (2011)
A Skype case study (2011)A Skype case study (2011)
A Skype case study (2011)Vasia Kalavri
 
Psi multi accessgateway_casestudy
Psi multi accessgateway_casestudyPsi multi accessgateway_casestudy
Psi multi accessgateway_casestudyPrimesoftinc
 
Distributed Multi-Threading in GNU-Prolog
Distributed Multi-Threading in GNU-PrologDistributed Multi-Threading in GNU-Prolog
Distributed Multi-Threading in GNU-PrologNuno Morgadinho
 
Learning, Analyzing and Protecting Android with TOMOYO Linux (JLS2009)
Learning, Analyzing and Protecting Android with TOMOYO Linux (JLS2009)Learning, Analyzing and Protecting Android with TOMOYO Linux (JLS2009)
Learning, Analyzing and Protecting Android with TOMOYO Linux (JLS2009)Toshiharu Harada, Ph.D
 

Tendances (17)

Jtag Tools For Linux
Jtag Tools For LinuxJtag Tools For Linux
Jtag Tools For Linux
 
Safe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereSafe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get There
 
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...
 
Skype testing overview
Skype testing overviewSkype testing overview
Skype testing overview
 
Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)Embedded Android : System Development - Part II (HAL)
Embedded Android : System Development - Part II (HAL)
 
TOMOYO Linux on Android
TOMOYO Linux on AndroidTOMOYO Linux on Android
TOMOYO Linux on Android
 
Android presentation
Android presentationAndroid presentation
Android presentation
 
Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...Overcoming software development challenges by using an integrated software fr...
Overcoming software development challenges by using an integrated software fr...
 
Dalvik Vm & Jit
Dalvik Vm & JitDalvik Vm & Jit
Dalvik Vm & Jit
 
LDTT : A Low Level Driver Unit Testing Tool
LDTT : A Low Level Driver Unit Testing Tool LDTT : A Low Level Driver Unit Testing Tool
LDTT : A Low Level Driver Unit Testing Tool
 
Divya_Resume
Divya_ResumeDivya_Resume
Divya_Resume
 
Introduction to Android by Demian Neidetcher
Introduction to Android by Demian NeidetcherIntroduction to Android by Demian Neidetcher
Introduction to Android by Demian Neidetcher
 
System verilog important
System verilog importantSystem verilog important
System verilog important
 
A Skype case study (2011)
A Skype case study (2011)A Skype case study (2011)
A Skype case study (2011)
 
Psi multi accessgateway_casestudy
Psi multi accessgateway_casestudyPsi multi accessgateway_casestudy
Psi multi accessgateway_casestudy
 
Distributed Multi-Threading in GNU-Prolog
Distributed Multi-Threading in GNU-PrologDistributed Multi-Threading in GNU-Prolog
Distributed Multi-Threading in GNU-Prolog
 
Learning, Analyzing and Protecting Android with TOMOYO Linux (JLS2009)
Learning, Analyzing and Protecting Android with TOMOYO Linux (JLS2009)Learning, Analyzing and Protecting Android with TOMOYO Linux (JLS2009)
Learning, Analyzing and Protecting Android with TOMOYO Linux (JLS2009)
 

En vedette

Company Profile di Comunicazione Italiana
Company Profile di Comunicazione Italiana Company Profile di Comunicazione Italiana
Company Profile di Comunicazione Italiana Felice d'Endice
 
Agile cmmi fusion for smart card new product development
Agile cmmi fusion for smart card new product developmentAgile cmmi fusion for smart card new product development
Agile cmmi fusion for smart card new product developmentGopalakrishnan Visvanathan
 
A sampling of Tara's photography
A sampling of Tara's photographyA sampling of Tara's photography
A sampling of Tara's photographyTara Cotter
 
Copyright vs. Freedom of expression
Copyright vs. Freedom of expressionCopyright vs. Freedom of expression
Copyright vs. Freedom of expressionmarco scialdone
 
PHP & IBM i
PHP & IBM iPHP & IBM i
PHP & IBM iGrUSP
 

En vedette (6)

Company Profile di Comunicazione Italiana
Company Profile di Comunicazione Italiana Company Profile di Comunicazione Italiana
Company Profile di Comunicazione Italiana
 
Agile cmmi fusion for smart card new product development
Agile cmmi fusion for smart card new product developmentAgile cmmi fusion for smart card new product development
Agile cmmi fusion for smart card new product development
 
A sampling of Tara's photography
A sampling of Tara's photographyA sampling of Tara's photography
A sampling of Tara's photography
 
Scania - La nueva Serie R
Scania - La nueva Serie RScania - La nueva Serie R
Scania - La nueva Serie R
 
Copyright vs. Freedom of expression
Copyright vs. Freedom of expressionCopyright vs. Freedom of expression
Copyright vs. Freedom of expression
 
PHP & IBM i
PHP & IBM iPHP & IBM i
PHP & IBM i
 

Similaire à Jython for embedded software validation

Jython for Embedded Software Validation
Jython for Embedded Software ValidationJython for Embedded Software Validation
Jython for Embedded Software Validationvraniero
 
Enabling Cross-platform Deep Learning Applications with Intel OpenVINO™
Enabling Cross-platform Deep Learning Applications with Intel OpenVINO™Enabling Cross-platform Deep Learning Applications with Intel OpenVINO™
Enabling Cross-platform Deep Learning Applications with Intel OpenVINO™Yury Gorbachev
 
Develop and optimize CV/DL applications with Intel OpenVINO toolkit
Develop and optimize CV/DL applications with Intel OpenVINO toolkitDevelop and optimize CV/DL applications with Intel OpenVINO toolkit
Develop and optimize CV/DL applications with Intel OpenVINO toolkitYury Gorbachev
 
"APIs for Accelerating Vision and Inferencing: Options and Trade-offs," a Pre...
"APIs for Accelerating Vision and Inferencing: Options and Trade-offs," a Pre..."APIs for Accelerating Vision and Inferencing: Options and Trade-offs," a Pre...
"APIs for Accelerating Vision and Inferencing: Options and Trade-offs," a Pre...Edge AI and Vision Alliance
 
Enea Linux and LWRT FTF China 2012
Enea Linux and LWRT FTF China 2012Enea Linux and LWRT FTF China 2012
Enea Linux and LWRT FTF China 2012EneaSoftware
 
Automating functional testing of Flex applications.
Automating functional testing of Flex applications.Automating functional testing of Flex applications.
Automating functional testing of Flex applications.Gokuldas Pillai
 
NFV and SDN: 4G LTE and 5G Wireless Networks on Intel(r) Architecture
NFV and SDN: 4G LTE and 5G Wireless Networks on Intel(r) ArchitectureNFV and SDN: 4G LTE and 5G Wireless Networks on Intel(r) Architecture
NFV and SDN: 4G LTE and 5G Wireless Networks on Intel(r) ArchitectureMichelle Holley
 
Large Scale Computing Infrastructure - Nautilus
Large Scale Computing Infrastructure - NautilusLarge Scale Computing Infrastructure - Nautilus
Large Scale Computing Infrastructure - NautilusGabriele Di Bernardo
 
XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE Systems
XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE SystemsXPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE Systems
XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE SystemsThe Linux Foundation
 
Oracle Linux Nov 2011 Webcast
Oracle Linux Nov 2011 WebcastOracle Linux Nov 2011 Webcast
Oracle Linux Nov 2011 WebcastTerry Wang
 
What is Java Technology (An introduction with comparision of .net coding)
What is Java Technology (An introduction with comparision of .net coding)What is Java Technology (An introduction with comparision of .net coding)
What is Java Technology (An introduction with comparision of .net coding)Shaharyar khan
 
Making Networking Apps Scream on Windows with DPDK
Making Networking Apps Scream on Windows with DPDKMaking Networking Apps Scream on Windows with DPDK
Making Networking Apps Scream on Windows with DPDKMichelle Holley
 
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)ITCamp
 
Velocity-EHF for Android
Velocity-EHF for AndroidVelocity-EHF for Android
Velocity-EHF for Androidmichaeljfawcett
 

Similaire à Jython for embedded software validation (20)

Jython for Embedded Software Validation
Jython for Embedded Software ValidationJython for Embedded Software Validation
Jython for Embedded Software Validation
 
Enabling Cross-platform Deep Learning Applications with Intel OpenVINO™
Enabling Cross-platform Deep Learning Applications with Intel OpenVINO™Enabling Cross-platform Deep Learning Applications with Intel OpenVINO™
Enabling Cross-platform Deep Learning Applications with Intel OpenVINO™
 
OpenVINO introduction
OpenVINO introductionOpenVINO introduction
OpenVINO introduction
 
Develop and optimize CV/DL applications with Intel OpenVINO toolkit
Develop and optimize CV/DL applications with Intel OpenVINO toolkitDevelop and optimize CV/DL applications with Intel OpenVINO toolkit
Develop and optimize CV/DL applications with Intel OpenVINO toolkit
 
"APIs for Accelerating Vision and Inferencing: Options and Trade-offs," a Pre...
"APIs for Accelerating Vision and Inferencing: Options and Trade-offs," a Pre..."APIs for Accelerating Vision and Inferencing: Options and Trade-offs," a Pre...
"APIs for Accelerating Vision and Inferencing: Options and Trade-offs," a Pre...
 
Enea Linux and LWRT FTF China 2012
Enea Linux and LWRT FTF China 2012Enea Linux and LWRT FTF China 2012
Enea Linux and LWRT FTF China 2012
 
Automating functional testing of Flex applications.
Automating functional testing of Flex applications.Automating functional testing of Flex applications.
Automating functional testing of Flex applications.
 
What's New in RHEL 6 for Linux on System z?
What's New in RHEL 6 for Linux on System z?What's New in RHEL 6 for Linux on System z?
What's New in RHEL 6 for Linux on System z?
 
NFV and SDN: 4G LTE and 5G Wireless Networks on Intel(r) Architecture
NFV and SDN: 4G LTE and 5G Wireless Networks on Intel(r) ArchitectureNFV and SDN: 4G LTE and 5G Wireless Networks on Intel(r) Architecture
NFV and SDN: 4G LTE and 5G Wireless Networks on Intel(r) Architecture
 
Large Scale Computing Infrastructure - Nautilus
Large Scale Computing Infrastructure - NautilusLarge Scale Computing Infrastructure - Nautilus
Large Scale Computing Infrastructure - Nautilus
 
Satyam_Singh_cv
Satyam_Singh_cvSatyam_Singh_cv
Satyam_Singh_cv
 
Cont0519
Cont0519Cont0519
Cont0519
 
XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE Systems
XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE SystemsXPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE Systems
XPDS16: The OpenXT Project in 2016 - Christopher Clark, BAE Systems
 
Oracle Linux Nov 2011 Webcast
Oracle Linux Nov 2011 WebcastOracle Linux Nov 2011 Webcast
Oracle Linux Nov 2011 Webcast
 
What is Java Technology (An introduction with comparision of .net coding)
What is Java Technology (An introduction with comparision of .net coding)What is Java Technology (An introduction with comparision of .net coding)
What is Java Technology (An introduction with comparision of .net coding)
 
Enabling NFV features in kubernetes
Enabling NFV features in kubernetesEnabling NFV features in kubernetes
Enabling NFV features in kubernetes
 
RohitJindal
RohitJindalRohitJindal
RohitJindal
 
Making Networking Apps Scream on Windows with DPDK
Making Networking Apps Scream on Windows with DPDKMaking Networking Apps Scream on Windows with DPDK
Making Networking Apps Scream on Windows with DPDK
 
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
Deep Dive into the Microsoft OpenStack CI Infrastructure (Alessandro Pilotti)
 
Velocity-EHF for Android
Velocity-EHF for AndroidVelocity-EHF for Android
Velocity-EHF for Android
 

Plus de PyCon Italia

Feed back report 2010
Feed back report 2010Feed back report 2010
Feed back report 2010PyCon Italia
 
Spyppolare o non spyppolare
Spyppolare o non spyppolareSpyppolare o non spyppolare
Spyppolare o non spyppolarePyCon Italia
 
zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione"
zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione"zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione"
zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione"PyCon Italia
 
Undici anni di lavoro con Python
Undici anni di lavoro con PythonUndici anni di lavoro con Python
Undici anni di lavoro con PythonPyCon Italia
 
socket e SocketServer: il framework per i server Internet in Python
socket e SocketServer: il framework per i server Internet in Pythonsocket e SocketServer: il framework per i server Internet in Python
socket e SocketServer: il framework per i server Internet in PythonPyCon Italia
 
Qt mobile PySide bindings
Qt mobile PySide bindingsQt mobile PySide bindings
Qt mobile PySide bindingsPyCon Italia
 
Python: ottimizzazione numerica algoritmi genetici
Python: ottimizzazione numerica algoritmi geneticiPython: ottimizzazione numerica algoritmi genetici
Python: ottimizzazione numerica algoritmi geneticiPyCon Italia
 
Python in the browser
Python in the browserPython in the browser
Python in the browserPyCon Italia
 
PyPy 1.2: snakes never crawled so fast
PyPy 1.2: snakes never crawled so fastPyPy 1.2: snakes never crawled so fast
PyPy 1.2: snakes never crawled so fastPyCon Italia
 
PyCuda: Come sfruttare la potenza delle schede video nelle applicazioni python
PyCuda: Come sfruttare la potenza delle schede video nelle applicazioni pythonPyCuda: Come sfruttare la potenza delle schede video nelle applicazioni python
PyCuda: Come sfruttare la potenza delle schede video nelle applicazioni pythonPyCon Italia
 
OpenERP e l'arte della gestione aziendale con Python
OpenERP e l'arte della gestione aziendale con PythonOpenERP e l'arte della gestione aziendale con Python
OpenERP e l'arte della gestione aziendale con PythonPyCon Italia
 
New and improved: Coming changes to the unittest module
 	 New and improved: Coming changes to the unittest module 	 New and improved: Coming changes to the unittest module
New and improved: Coming changes to the unittest modulePyCon Italia
 
Monitoraggio del Traffico di Rete Usando Python ed ntop
Monitoraggio del Traffico di Rete Usando Python ed ntopMonitoraggio del Traffico di Rete Usando Python ed ntop
Monitoraggio del Traffico di Rete Usando Python ed ntopPyCon Italia
 
Foxgame introduzione all'apprendimento automatico
Foxgame introduzione all'apprendimento automaticoFoxgame introduzione all'apprendimento automatico
Foxgame introduzione all'apprendimento automaticoPyCon Italia
 
Django è pronto per l'Enterprise
Django è pronto per l'EnterpriseDjango è pronto per l'Enterprise
Django è pronto per l'EnterprisePyCon Italia
 
Crogioli, alambicchi e beute: dove mettere i vostri dati.
Crogioli, alambicchi e beute: dove mettere i vostri dati.Crogioli, alambicchi e beute: dove mettere i vostri dati.
Crogioli, alambicchi e beute: dove mettere i vostri dati.PyCon Italia
 
Comet web applications with Python, Django & Orbited
Comet web applications with Python, Django & OrbitedComet web applications with Python, Django & Orbited
Comet web applications with Python, Django & OrbitedPyCon Italia
 
Cleanup and new optimizations in WPython 1.1
Cleanup and new optimizations in WPython 1.1Cleanup and new optimizations in WPython 1.1
Cleanup and new optimizations in WPython 1.1PyCon Italia
 

Plus de PyCon Italia (20)

Feed back report 2010
Feed back report 2010Feed back report 2010
Feed back report 2010
 
Spyppolare o non spyppolare
Spyppolare o non spyppolareSpyppolare o non spyppolare
Spyppolare o non spyppolare
 
zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione"
zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione"zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione"
zc.buildout: "Un modo estremamente civile per sviluppare un'applicazione"
 
Undici anni di lavoro con Python
Undici anni di lavoro con PythonUndici anni di lavoro con Python
Undici anni di lavoro con Python
 
socket e SocketServer: il framework per i server Internet in Python
socket e SocketServer: il framework per i server Internet in Pythonsocket e SocketServer: il framework per i server Internet in Python
socket e SocketServer: il framework per i server Internet in Python
 
Qt mobile PySide bindings
Qt mobile PySide bindingsQt mobile PySide bindings
Qt mobile PySide bindings
 
Python: ottimizzazione numerica algoritmi genetici
Python: ottimizzazione numerica algoritmi geneticiPython: ottimizzazione numerica algoritmi genetici
Python: ottimizzazione numerica algoritmi genetici
 
Python idiomatico
Python idiomaticoPython idiomatico
Python idiomatico
 
Python in the browser
Python in the browserPython in the browser
Python in the browser
 
PyPy 1.2: snakes never crawled so fast
PyPy 1.2: snakes never crawled so fastPyPy 1.2: snakes never crawled so fast
PyPy 1.2: snakes never crawled so fast
 
PyCuda: Come sfruttare la potenza delle schede video nelle applicazioni python
PyCuda: Come sfruttare la potenza delle schede video nelle applicazioni pythonPyCuda: Come sfruttare la potenza delle schede video nelle applicazioni python
PyCuda: Come sfruttare la potenza delle schede video nelle applicazioni python
 
OpenERP e l'arte della gestione aziendale con Python
OpenERP e l'arte della gestione aziendale con PythonOpenERP e l'arte della gestione aziendale con Python
OpenERP e l'arte della gestione aziendale con Python
 
New and improved: Coming changes to the unittest module
 	 New and improved: Coming changes to the unittest module 	 New and improved: Coming changes to the unittest module
New and improved: Coming changes to the unittest module
 
Monitoraggio del Traffico di Rete Usando Python ed ntop
Monitoraggio del Traffico di Rete Usando Python ed ntopMonitoraggio del Traffico di Rete Usando Python ed ntop
Monitoraggio del Traffico di Rete Usando Python ed ntop
 
Foxgame introduzione all'apprendimento automatico
Foxgame introduzione all'apprendimento automaticoFoxgame introduzione all'apprendimento automatico
Foxgame introduzione all'apprendimento automatico
 
Effective EC2
Effective EC2Effective EC2
Effective EC2
 
Django è pronto per l'Enterprise
Django è pronto per l'EnterpriseDjango è pronto per l'Enterprise
Django è pronto per l'Enterprise
 
Crogioli, alambicchi e beute: dove mettere i vostri dati.
Crogioli, alambicchi e beute: dove mettere i vostri dati.Crogioli, alambicchi e beute: dove mettere i vostri dati.
Crogioli, alambicchi e beute: dove mettere i vostri dati.
 
Comet web applications with Python, Django & Orbited
Comet web applications with Python, Django & OrbitedComet web applications with Python, Django & Orbited
Comet web applications with Python, Django & Orbited
 
Cleanup and new optimizations in WPython 1.1
Cleanup and new optimizations in WPython 1.1Cleanup and new optimizations in WPython 1.1
Cleanup and new optimizations in WPython 1.1
 

Dernier

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 

Dernier (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 

Jython for embedded software validation

  • 1. Jython for Embedded Software Validation Raniero Virgilio IAG/ECG/PPD SW Pycon Quattro, 8/5/2010 1
  • 2. Raniero Virgilio My Job • Software Engineer in Intel Shannon, Ireland • Responsible for Test Automation infrastructure My Team • PPD (Performance Product Division) Embedded Software • Complete SOCs for security, communications, storage and embedded designs • http://www.intel.com/embedded/index.htm Intel Architecture Group 2
  • 3. Agenda • Validation in embedded systems • Runtime Plug-in model • Runtime Plug-in model with Jython • Jython and Eclipse • Results Intel Architecture Group 3
  • 4. Validation in embedded systems • A challenging environment • Typical scenario • Requirements and solutions Intel Architecture Group 4
  • 5. A challenging environment Multiple hw/sw deployments • Configuration set up needs to be fast and reliable • Support for different OS types and versions Consistent cooperation • Several teams working on the same infrastructure • Synchronization with overseas groups Intel Architecture Group 5
  • 6. Test Automation scenario XML-RPC session Server1 (Windows) Traffic Generator 1 XML-RPC session Server2 (Windows) Traffic Generator 2 Telnet session Test DUT1 Test Execution XML-RPC Driver Reports (Linux/Windows/FreeBSD) session Telnet session DUT2 (Linux/Windows/FreeBSD) Telnet session DUT3 (Linux/Windows/FreeBSD) Intel Architecture Group 6
  • 7. Test Automation requirements Programming language • Platform-independent • Libraries for connectivity and string manipulation Test Framework design • OOP to maximize reusability of test code • Platform runtime extendibility Sustainable implementation • An effective interface between test execution (local to DUT) and test reporting (distributed) • Customizable open source solution Intel Architecture Group 7
  • 8. Proposed solution Programming language • Python – telnetlib, xmlrpclib, SimpleXMLRPCServer – re, xml.dom.minidom Test Framework design • Runtime plug-in model Sustainable implementation • Jython embedded in Eclipse – Jython is a Python interpreter written in 100% pure Java Intel Architecture Group 8
  • 9. Runtime plug-in model • Definition • Design Pattern Intel Architecture Group 9
  • 10. Runtime Plug-in Model The term plug-in refers to a type of program that contributes code to the system and adds a special capability to it. • The plug-in is unknown at compile-time of the application for which the plug-in is designed. • Plug-ins are dynamically plugged into the application they are designed for at runtime • The key for this model is Dynamic Code Loading Intel Architecture Group 10
  • 11. Design Pattern • Extendibility – Application capabilities are defined by the supported Plug-in – Plug-in can be loaded and unloaded at runtime • Plug-in development – Each Plug-in shall implement a specified interface – The plug-in delegates the Application for high-level services • Parallel life-cycle – Application and Plug-ins can be developed independently Intel Architecture Group 11
  • 12. Runtime Plug-in Model with Jython • Dynamic code loading in Java and Jython • Multithreading Intel Architecture Group 12
  • 13. Dynamic code loading in Java • Runtime source compilation – StandardJavaFileManager handles the source code – JavaCompiler executes the compilation and creates a class file – DiagnosticCollector gathers compilation information • Class file deployment – A new Classloader has to be defined – It need to extend the previous one with the new class file Intel Architecture Group 13
  • 14. Dynamic code loading in Jython • One step task – The PluginHandler instantiates one PythonInterpreter – The Plug-in path is added in the PythonInterpreter sys.path – The Plug-in is imported in the embedded Python environment • Lower complexity – Implementation is much easier – Code can be modified “on-the-fly” and reloaded – First time Plug-in loading is usually quicker on Jython Intel Architecture Group 14
  • 15. Multithreaded environment • Parallel PluginHandlers – Independent Jython environments’ setups – Each PluginHandler defines an autonomous environment Java Thread • Multiple task execution – When PluginHandler invokes a run() the execution is encapsulated in a Java Thread – Plug-ins expand the application concurrently Intel Architecture Group 15
  • 16. Jython and Eclipse • XTP architecture • The Execution Engines • The JythonExchanger Intel Architecture Group 16
  • 17. The eXtendible Test Platform (XTP) TestCase Code TestCase Docs Java Jython Traffic Generator A C Files DUT A DUT B DUT C DUT D Intel Architecture Group 17
  • 18. The Execution Engine in XTP DUT A DUT B • XTP 28.08.09 – provides high-level test services (logging, reporting, multithreading) and an interface with frontend • Execution Engine – a self-contained software package, written in Python, that implements the actual test logic and expands XTP enabling communication of the test platform with DUTs, servers and test equipments Intel Architecture Group 18
  • 19. Plugging an Execution Engine DUT A DUT B – A PythonInterpreter is created by XTP 28.08.09 – The activation sequences contained in the EE Manifest are executed in the PythonInterpreter – An instance of the (Java) JythonInterpreter class is created by XTP and deployed into the relevant PythonInterpreter Intel Architecture Group 19
  • 20. The jythonExchanger – The jythonExchanger is the interface between the EE and the XTP environment – Each EE uses it to access XTP high-level features – XTP infrastructure uses it to retrieve test results from EEs and show them in graphs and reports – The overall consistency of the system is assured by the Jython characteristic to be a 100% pure Java implementation. Intel Architecture Group 20
  • 21. Results • Main benefits • Common risks Intel Architecture Group 21
  • 22. Sustainable architecture 40 40 39 39 38 38 Java Heap Space Java Heap Space 37 37 36 36 35 35 34 34 33 33 32 32 0 1 2 3 4 5 5 4 3 2 1 0 EEs Number EEs Number • Example: load/unload 5 plug-ins at runtime – Memory request increases without “exploding” – Memory is freed when plug-ins are deactivated Intel Architecture Group 22
  • 23. Major benefits “Calibrate your technology” • Choose the solution that best fits your needs – Python threads or Java threads (or Eclipse Jobs)? • Transparent Python layer on DUTs – XML-RPC Server + os.popen() have small CPU overhead • Plug-in lifecycle – Runtime plug-ins promote validation through cooperation • Short rump-up time – Perl users start using Python very intuitively Intel Architecture Group 23
  • 24. Common risks “Design your architecture” • Test planning – To make the most of the Plug-in design pattern, point out common test domains in advance • Long-term investment – Platform stability requires a significant effort • Keep code under control – Review carefully test code before integrating it • Right-Size your hardware – Concurrent executions may require performing machines Intel Architecture Group 24
  • 25. Q&A (raniero.virgilio@intel.com) Intel Architecture Group 25