SlideShare une entreprise Scribd logo
1  sur  61
Best Practices for Distributing
Componentized LabVIEW Applications
NI Package Management Content
http://bit.ly/nipkg
Agenda
I. Would my application benefit from componentization?
II. How do I architect a componentized application?
III. How do I build a componentized application?
IV. How do I distribute a componentized application?
Deployment Strategy
https://www.flickr.com/photos/daveynin/6278005299 https://commons.wikimedia.org/wiki/File:Lego_dublo_arto_alanenpaa_5.JPG
MONOLITHIC COMPONENTIZEDversus
Monolithic Deployment
DEPLOYED FILES
Monolithic Deployment
Create initial deployment workflow
1. Create EXE buildspec and build the monolithic EXE
2. Create Installer buildspec and build the Installer
3. Run the installer on the target machine
Update deployment workflow
1. Make modifications to source code
2. Rebuild the monolithic EXE
3. Rebuild the full installer
4. Run the full installer on the target machine
5. (Revalidate if necessary)
Componentized Deployment
DEPLOYED FILES
Componentized Deployment
DEPLOYED FILES
Top-level application
Dynamic HAL plug-ins
Subpanel
Config files
ni.com
DEMO: Componentized Application
Componentized Deployment—How to Architect
▪ How do you plan to push out updates to your application?
▪ How does your end user want to update the application?
▪ Are any pieces of your application reusable in other deployed applications?
Example components
▪ Subpanels
▪ HAL plug-ins
▪ Algorithm plug-ins
▪ Configuration files
?
Componentized Deployment—How to Architect
Best practices
▪ Modularize your UI
▪ Modularize your code
▪ Use a plug-in architecture
Componentized Deployment—How to Architect
Best practices
▪ Modularize your UI
▪ Modularize your code
▪ Use a plug-in architecture
Analysis
Reporting
Measurements
Componentized Deployment—How to Architect
Best practices
▪ Modularize your UI
▪ Modularize your code
▪ Use a plug-in architecture
Building a Componentized Application
What components do I build?
▪ EXE
▪ Plugins
▪ Config files
COMPONENTS
EXE
Plugins
(Source distribution)
Plugins
(Packed project library)
Config files
Which method should I use to build my plug-in?
Source Distribution
▪ Simpler build process
▪ More files on disk
▪ Source code more exposed
Packed Project Library (.lvlibp)
▪ More complex build process
▪ Single file per plug-in
▪ No source code exposed
Refer to
APPENDIX Section
ni.com
DEMO: Build Components Into EXEs, PPLs,
and Source Distributions
Follow-Up Content for Deploying Plug-Ins
▪ See Appendix section in this presentation
▪ Recommendations for Deploying LabVIEW Plug-Ins in the Run-Time Engine
https://labviewguru.com/2013/12/07/the-nuances-of-deploying-plugins-in-labview/
▪ Best Practices for Packaging Code in LabVIEW
http://www.ni.com/webcast/3798/en/
▪ Example Plug-in Framework Using Source Distributions
https://forums.ni.com/t5/LabVIEW-Development-Best/Measurement-Utility-Plugin-
Hardware-Abstraction-Layer-Using/ta-p/3531389
▪ Example Plug-In Framework Using PPLs
https://www.studiobods.com/en/niweek2018-ts1043/
https://forums.ni.com/t5/LabVIEW-Development-Best/Plug-in-Architecture-using-Packed-
Project-Libraries-lvlibp/ta-p/3514395
Distributing a Componentized Application
Using NI Package Management
Introduction to NI Package Management
What is a package?
▪ Installation Files
▪ Metadata
▪ Dependencies
Program Files
Acme
support
Filter Test.exe
Config.ini
Introduction to NI Package Management
What is a package?
▪ Installation Files
▪ Metadata
▪ Dependencies
Display name Filter Test
Version 2.5.0.0
Description Runs sequence of
tests for Filter A12345
Maintainer Acme
Email support@acme.com
Category Application Software
Release notes Fixed bug 344322.
Updated analysis UI.
… …
Introduction to NI Package Management
What is a package?
▪ Installation Files
▪ Metadata
▪ Dependencies
2.5
2.0 2.2 1.5
4.0 4.5 2.6
Drivers and Runtimes
Your Dependencies
Main EXE
Config HW Run Sequence View Reports
LabVIEW RTENI-SCOPE RTENI-VISA RTE
Agilent 34401a PXIe-5185 Simulated DMM
HAL Plug-Ins
Demo Example—Package Dependencies
Main EXE
Config HW Run Sequence View Reports
LabVIEW RTENI-SCOPE RTENI-VISA RTE
Agilent 34401a PXIe-5185 Simulated DMM
HAL Plug-Ins
Demo Example—Package Dependencies
DUT A001Test Station 1
1. Build packages
2. Distribute packages on a feed
3. Register the feed
4. Browse and install packages
5. Build/distribute updates
6. Install updates
Overview of Workflow With
and
Demo
1. Build packages
2. Distribute packages on a feed
3. Register the feed
4. Browse and install packages
5. Build/distribute updates
6. Install updates
Development Computer
Demo
1. Build packages
2. Distribute packages on a feed
3. Register the feed
4. Browse and install packages
5. Build/distribute updates
6. Install updates
Development Computer
Feed
Hosted on local/network folder or web server
Demo
1. Build packages
2. Distribute packages on a feed
3. Register the feed
4. Browse and install packages
5. Build/distribute updates
6. Install updates
Target Computer
Demo
1. Build packages
2. Distribute packages on a feed
3. Register the feed
4. Browse and install packages
5. Build/distribute updates
6. Install updates
Target Computer
Demo
1. Build packages
2. Distribute packages on a feed
3. Register the feed
4. Browse and install packages
5. Build/distribute updates
6. Install updates
Development Computer
Demo
1. Build packages
2. Distribute packages on a feed
3. Register the feed
4. Browse and install packages
5. Build/distribute updates
6. Install updates
Target Computer
Distributing a Componentized Application
Using Package Installer
Package Installer
Package Installer—What Gets Installed?
▪ NI Package Manager
▪ Your package and any dependencies
Online Package Installer
Lightweight
Package
Installer
NI-DAQmx 18.0 Feed
downloads.ni.com/…/ni-daqmx
LabVIEW NXG Run-Time Engine 2.1 Feed
downloads.ni.com/…/ni-labview-nxg-rte
Internal Acme Feed
mynetworkinternal acme feed
Distributing a Componentized Application
Using SystemLink™
Track systems through
a central web interface
Search systems across all groups
Multi-select to perform functions
in parallel (e.g., install, restart)
Manage system configuration, health, and performance through a central web application.
Classify systems into groups
Introduction to
1. Build packages
2. Distribute packages on SystemLink feed
3. (Optional) Create states
4. Push software to clients
5. Push updates to clients
Overview of Deployment Workflow With
and
Overview of Workflow
1. Build packages
2. Distribute packages on SystemLink feed
3. (Optional) Create states
4. Push software to clients
5. Push updates to clients
Development Computer
Overview of Workflow
1. Build packages
2. Distribute packages on SystemLink feed
3. (Optional) Create states
4. Push software to clients
5. Push updates to clients
Overview of Workflow
1. Build packages
2. Distribute packages on SystemLink feed
3. (Optional) Create states
4. Push software to clients
5. Push updates to clients
ni.com
ni.com/systemlink
Recap
I. Would my application benefit from componentization?
II. How do I architect a componentized application?
III. How do I build a componentized application?
IV. How do I distribute a componentized application?
Getting Started
Getting Started
1. Install NI Package Manager (if not already installed)1
http://www.ni.com/downloads/ni-package-manager/
Getting Started
1. Configure NI Package Manager to show package
and feed management tools
2
Getting Started
1. Install support for LabVIEW package build specification
▪ LabVIEW 2018 and later: already includes package build specification
▪ LabVIEW 2014–2017: must install LabVIEW Package Builder through NIPM
3
Getting Started
2. Install Feed Manager tool from VIPM or GitHub
▪ NIPM API in LabVIEW: https://github.com/allenh-ni/nipm-api-labview
▪ Feed Manager GUI: https://github.com/allenh-ni/nipm-feed-manager-gui-labview
4
NI Package Manager Workflow (Recap)
1. Build packages
2. Distribute packages on a feed
3. Register the feed
4. Browse and install packages
5. Build/distribute updates
6. Install updates
Additional Resources
Additional Best Practices for Building and
Distributing LabVIEW Applications
▪ NIWeek 2017: 5 Tips to Develop, Deploy, and License a Memorable Application
https://www.studiobods.com/en/niweek2017-ad568/
▪ NIWeek 2017: LabVIEW Application Builder and Continuous Integration
https://www.studiobods.com/en/niweek2017-ts721/
APPENDIX
Building a Componentized Application
What should I build from my components?
▪ EXE
▪ Plug-ins
▪ Source distributions
▪ Packed project libraries (PPLs)
▪ Configuration files
What should I build into the EXE?
▪ Top-level VI
▪ Common dependencies needed by other plug-ins
Examples
▪ Main GUI VI
▪ Main Launcher VI
▪ Parent classes
How
▪ Pull necessary dependencies into EXE by calling them
from the top-level VI
▪ Exclude plug-ins from the EXE by calling them dynamically
EXE
What should I build into a source distribution?
▪ Plug-ins with class relationships that span
across component boundaries
▪ Plug-ins load dynamically by a factory
pattern (OOP)
Examples
▪ HAL/MAL plug-ins
How
▪ Source distribution build specification
▪ Remove block diagrams
▪ Exclude code already included in the top-level EXE
SOURCE DISTRIBUTION
What should I build into a PPL?
▪ Static libraries that need to be updated
independently of the main EXE
Examples
▪ Subpanels
▪ Algorithms
How
▪ Packed project library build specification
PACKED PROJECT LIBRARY
LIBRARY
So which method should I use to build my plug-in?
Source Distribution
▪ Simpler build process
▪ More files on disk
▪ Source code more exposed
Packed Project Library (.lvlibp)
▪ More complex build process
▪ Single file per plug-in
▪ No source code exposed
Follow-Up Content for Deploying Plug-Ins
▪ Recommendations for Deploying LabVIEW Plug-Ins in the Run-Time Engine
https://labviewguru.com/2013/12/07/the-nuances-of-deploying-plugins-in-labview/
▪ Best Practices for Packaging Code in LabVIEW
http://www.ni.com/webcast/3798/en/
▪ Example Plug-In Framework Using Source Distributions
https://forums.ni.com/t5/LabVIEW-Development-Best/Measurement-Utility-
Plugin-Hardware-Abstraction-Layer-Using/ta-p/3531389
▪ Example Plug-In Framework Using PPLs
https://www.studiobods.com/en/niweek2018-ts1043/
https://forums.ni.com/t5/LabVIEW-Development-Best/Plug-in-Architecture-
using-Packed-Project-Libraries-lvlibp/ta-p/3514395
NI Package Management Content
http://bit.ly/nipkg
Before you go,
take the survey.
NI Package Manager

Contenu connexe

Tendances

Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Kai Wähner
 
Ranorex presentation
Ranorex presentationRanorex presentation
Ranorex presentation
ISsoft
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Simplilearn
 
Alphorm.com Formation Ansible : Le Guide Complet du Débutant
Alphorm.com Formation Ansible : Le Guide Complet du DébutantAlphorm.com Formation Ansible : Le Guide Complet du Débutant
Alphorm.com Formation Ansible : Le Guide Complet du Débutant
Alphorm
 

Tendances (20)

OpenTelemetry For Operators
OpenTelemetry For OperatorsOpenTelemetry For Operators
OpenTelemetry For Operators
 
Rancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep DiveRancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep Dive
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
 
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
 
Hashicorp Terraform Open Source vs Enterprise
Hashicorp Terraform Open Source vs EnterpriseHashicorp Terraform Open Source vs Enterprise
Hashicorp Terraform Open Source vs Enterprise
 
Ranorex presentation
Ranorex presentationRanorex presentation
Ranorex presentation
 
Open Source MANO(OSM)
Open Source MANO(OSM)Open Source MANO(OSM)
Open Source MANO(OSM)
 
OpenTelemetry Introduction
OpenTelemetry Introduction OpenTelemetry Introduction
OpenTelemetry Introduction
 
Implementing an Application Security Pipeline in Jenkins
Implementing an Application Security Pipeline in JenkinsImplementing an Application Security Pipeline in Jenkins
Implementing an Application Security Pipeline in Jenkins
 
OpenShift-Technical-Overview.pdf
OpenShift-Technical-Overview.pdfOpenShift-Technical-Overview.pdf
OpenShift-Technical-Overview.pdf
 
InfluxDB + Telegraf Operator: Easy Kubernetes Monitoring
InfluxDB + Telegraf Operator: Easy Kubernetes MonitoringInfluxDB + Telegraf Operator: Easy Kubernetes Monitoring
InfluxDB + Telegraf Operator: Easy Kubernetes Monitoring
 
Mrtg
MrtgMrtg
Mrtg
 
Jenkins CI
Jenkins CIJenkins CI
Jenkins CI
 
Why kubernetes matters
Why kubernetes mattersWhy kubernetes matters
Why kubernetes matters
 
Prometheus and Grafana
Prometheus and GrafanaPrometheus and Grafana
Prometheus and Grafana
 
Combining Logs, Metrics, and Traces for Unified Observability
Combining Logs, Metrics, and Traces for Unified ObservabilityCombining Logs, Metrics, and Traces for Unified Observability
Combining Logs, Metrics, and Traces for Unified Observability
 
Drive into calico architecture
Drive into calico architectureDrive into calico architecture
Drive into calico architecture
 
DevSecOps - CI/CD com Pentest e Análise de Vulnerabilidades
DevSecOps - CI/CD com Pentest e Análise de VulnerabilidadesDevSecOps - CI/CD com Pentest e Análise de Vulnerabilidades
DevSecOps - CI/CD com Pentest e Análise de Vulnerabilidades
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
 
Alphorm.com Formation Ansible : Le Guide Complet du Débutant
Alphorm.com Formation Ansible : Le Guide Complet du DébutantAlphorm.com Formation Ansible : Le Guide Complet du Débutant
Alphorm.com Formation Ansible : Le Guide Complet du Débutant
 

Similaire à NI Package Manager

CoC NA 2023 - Reproducible Builds for the JVM and beyond.pptx
CoC NA 2023 - Reproducible Builds for the JVM and beyond.pptxCoC NA 2023 - Reproducible Builds for the JVM and beyond.pptx
CoC NA 2023 - Reproducible Builds for the JVM and beyond.pptx
Hervé Boutemy
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
Mike McGarr
 

Similaire à NI Package Manager (20)

What's new in p2 (2009)?
What's new in p2 (2009)?What's new in p2 (2009)?
What's new in p2 (2009)?
 
Pde build
Pde buildPde build
Pde build
 
Devops course content
Devops course contentDevops course content
Devops course content
 
Opendaylight SDN Controller
Opendaylight SDN ControllerOpendaylight SDN Controller
Opendaylight SDN Controller
 
Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0Apigee deploy grunt plugin.1.0
Apigee deploy grunt plugin.1.0
 
CoC NA 2023 - Reproducible Builds for the JVM and beyond.pptx
CoC NA 2023 - Reproducible Builds for the JVM and beyond.pptxCoC NA 2023 - Reproducible Builds for the JVM and beyond.pptx
CoC NA 2023 - Reproducible Builds for the JVM and beyond.pptx
 
Maven
MavenMaven
Maven
 
Intelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest IstanbulIntelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest Istanbul
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
 
CQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and DeploymentCQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and Deployment
 
CQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and DeploymentCQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and Deployment
 
Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)
 
Symfony 2 under control
Symfony 2 under controlSymfony 2 under control
Symfony 2 under control
 
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
 
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
 
Azure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersAzure DevOps for JavaScript Developers
Azure DevOps for JavaScript Developers
 
DevOps & DevEx
DevOps & DevExDevOps & DevEx
DevOps & DevEx
 
How to adopt team development and source control rev2
How to adopt team development and source control rev2How to adopt team development and source control rev2
How to adopt team development and source control rev2
 
Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)
 
BMO - Intelligent Projects with Maven
BMO - Intelligent Projects with MavenBMO - Intelligent Projects with Maven
BMO - Intelligent Projects with Maven
 

Plus de DMC, Inc.

Plus de DMC, Inc. (20)

NI Week 2019 Overview
NI Week 2019 OverviewNI Week 2019 Overview
NI Week 2019 Overview
 
VI package manager
VI package managerVI package manager
VI package manager
 
Auto Code Generation and Rapid Brewery/Distillery Automation
Auto Code Generation and Rapid Brewery/Distillery AutomationAuto Code Generation and Rapid Brewery/Distillery Automation
Auto Code Generation and Rapid Brewery/Distillery Automation
 
Multi-site WinCC 7 Development with Centralized Process Historian & Informati...
Multi-site WinCC 7 Development with Centralized Process Historian & Informati...Multi-site WinCC 7 Development with Centralized Process Historian & Informati...
Multi-site WinCC 7 Development with Centralized Process Historian & Informati...
 
Dynamic and Scalable Systems Using WinCC OA
Dynamic and Scalable Systems Using WinCC OADynamic and Scalable Systems Using WinCC OA
Dynamic and Scalable Systems Using WinCC OA
 
Taking your Siemens PLC s7-1200 to industry 4.0
Taking your Siemens PLC s7-1200 to industry 4.0Taking your Siemens PLC s7-1200 to industry 4.0
Taking your Siemens PLC s7-1200 to industry 4.0
 
Flexibility and standardization using dynamic IO addressing and option handling
Flexibility and standardization using dynamic IO addressing and option handlingFlexibility and standardization using dynamic IO addressing and option handling
Flexibility and standardization using dynamic IO addressing and option handling
 
Ni week 2018 DMC presentation IoT
Ni week 2018 DMC presentation IoTNi week 2018 DMC presentation IoT
Ni week 2018 DMC presentation IoT
 
Ni week 2018_ux_lab_viewcandothat
Ni week 2018_ux_lab_viewcandothatNi week 2018_ux_lab_viewcandothat
Ni week 2018_ux_lab_viewcandothat
 
Ni week 2018 LLAMA presentation
Ni week 2018 LLAMA presentationNi week 2018 LLAMA presentation
Ni week 2018 LLAMA presentation
 
Career Development Plans as a Competitive Advantage
Career Development Plans as a Competitive AdvantageCareer Development Plans as a Competitive Advantage
Career Development Plans as a Competitive Advantage
 
10 Tips for Using SharePoint to prepare for the CSIA Audit
10 Tips for Using SharePoint to prepare for the CSIA Audit10 Tips for Using SharePoint to prepare for the CSIA Audit
10 Tips for Using SharePoint to prepare for the CSIA Audit
 
5 Tips for Using TIA Portal V14 to Decrease Safety Development Time
5 Tips for Using TIA Portal V14 to Decrease Safety Development Time 5 Tips for Using TIA Portal V14 to Decrease Safety Development Time
5 Tips for Using TIA Portal V14 to Decrease Safety Development Time
 
Pushing Data from S7-1200 to Cloud
Pushing Data from S7-1200 to CloudPushing Data from S7-1200 to Cloud
Pushing Data from S7-1200 to Cloud
 
Lightning Fast SCADA Development with Open Library for WinCC OA
Lightning Fast SCADA Development with Open Library for WinCC OA Lightning Fast SCADA Development with Open Library for WinCC OA
Lightning Fast SCADA Development with Open Library for WinCC OA
 
What is the Siemens Open Library, and How it Decreased Development Time for E...
What is the Siemens Open Library, and How it Decreased Development Time for E...What is the Siemens Open Library, and How it Decreased Development Time for E...
What is the Siemens Open Library, and How it Decreased Development Time for E...
 
Advanced Motion Control: Using the New 1500TF Processor and Siemens LAxis Lib...
Advanced Motion Control: Using the New 1500TF Processor and Siemens LAxis Lib...Advanced Motion Control: Using the New 1500TF Processor and Siemens LAxis Lib...
Advanced Motion Control: Using the New 1500TF Processor and Siemens LAxis Lib...
 
What's New in LabVIEW 2017
What's New in LabVIEW 2017What's New in LabVIEW 2017
What's New in LabVIEW 2017
 
Tools for Managing your LabVIEW Source Code
Tools for Managing your LabVIEW Source CodeTools for Managing your LabVIEW Source Code
Tools for Managing your LabVIEW Source Code
 
Real-World Case Study: For Connecting CompactRIO's to Microsoft Azure IoT
Real-World Case Study: For Connecting CompactRIO's to Microsoft Azure IoTReal-World Case Study: For Connecting CompactRIO's to Microsoft Azure IoT
Real-World Case Study: For Connecting CompactRIO's to Microsoft Azure IoT
 

Dernier

notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoorTop Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
dharasingh5698
 

Dernier (20)

notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
Intro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdfIntro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdf
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoorTop Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
Top Rated Call Girls In chittoor 📱 {7001035870} VIP Escorts chittoor
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 

NI Package Manager

  • 1. Best Practices for Distributing Componentized LabVIEW Applications
  • 2. NI Package Management Content http://bit.ly/nipkg
  • 3. Agenda I. Would my application benefit from componentization? II. How do I architect a componentized application? III. How do I build a componentized application? IV. How do I distribute a componentized application?
  • 6. Monolithic Deployment Create initial deployment workflow 1. Create EXE buildspec and build the monolithic EXE 2. Create Installer buildspec and build the Installer 3. Run the installer on the target machine Update deployment workflow 1. Make modifications to source code 2. Rebuild the monolithic EXE 3. Rebuild the full installer 4. Run the full installer on the target machine 5. (Revalidate if necessary)
  • 8. Componentized Deployment DEPLOYED FILES Top-level application Dynamic HAL plug-ins Subpanel Config files
  • 10. Componentized Deployment—How to Architect ▪ How do you plan to push out updates to your application? ▪ How does your end user want to update the application? ▪ Are any pieces of your application reusable in other deployed applications? Example components ▪ Subpanels ▪ HAL plug-ins ▪ Algorithm plug-ins ▪ Configuration files ?
  • 11. Componentized Deployment—How to Architect Best practices ▪ Modularize your UI ▪ Modularize your code ▪ Use a plug-in architecture
  • 12. Componentized Deployment—How to Architect Best practices ▪ Modularize your UI ▪ Modularize your code ▪ Use a plug-in architecture Analysis Reporting Measurements
  • 13. Componentized Deployment—How to Architect Best practices ▪ Modularize your UI ▪ Modularize your code ▪ Use a plug-in architecture
  • 15. What components do I build? ▪ EXE ▪ Plugins ▪ Config files COMPONENTS EXE Plugins (Source distribution) Plugins (Packed project library) Config files
  • 16. Which method should I use to build my plug-in? Source Distribution ▪ Simpler build process ▪ More files on disk ▪ Source code more exposed Packed Project Library (.lvlibp) ▪ More complex build process ▪ Single file per plug-in ▪ No source code exposed Refer to APPENDIX Section
  • 17. ni.com DEMO: Build Components Into EXEs, PPLs, and Source Distributions
  • 18. Follow-Up Content for Deploying Plug-Ins ▪ See Appendix section in this presentation ▪ Recommendations for Deploying LabVIEW Plug-Ins in the Run-Time Engine https://labviewguru.com/2013/12/07/the-nuances-of-deploying-plugins-in-labview/ ▪ Best Practices for Packaging Code in LabVIEW http://www.ni.com/webcast/3798/en/ ▪ Example Plug-in Framework Using Source Distributions https://forums.ni.com/t5/LabVIEW-Development-Best/Measurement-Utility-Plugin- Hardware-Abstraction-Layer-Using/ta-p/3531389 ▪ Example Plug-In Framework Using PPLs https://www.studiobods.com/en/niweek2018-ts1043/ https://forums.ni.com/t5/LabVIEW-Development-Best/Plug-in-Architecture-using-Packed- Project-Libraries-lvlibp/ta-p/3514395
  • 19. Distributing a Componentized Application Using NI Package Management
  • 20. Introduction to NI Package Management What is a package? ▪ Installation Files ▪ Metadata ▪ Dependencies Program Files Acme support Filter Test.exe Config.ini
  • 21. Introduction to NI Package Management What is a package? ▪ Installation Files ▪ Metadata ▪ Dependencies Display name Filter Test Version 2.5.0.0 Description Runs sequence of tests for Filter A12345 Maintainer Acme Email support@acme.com Category Application Software Release notes Fixed bug 344322. Updated analysis UI. … …
  • 22. Introduction to NI Package Management What is a package? ▪ Installation Files ▪ Metadata ▪ Dependencies 2.5 2.0 2.2 1.5 4.0 4.5 2.6 Drivers and Runtimes Your Dependencies
  • 23. Main EXE Config HW Run Sequence View Reports LabVIEW RTENI-SCOPE RTENI-VISA RTE Agilent 34401a PXIe-5185 Simulated DMM HAL Plug-Ins Demo Example—Package Dependencies
  • 24. Main EXE Config HW Run Sequence View Reports LabVIEW RTENI-SCOPE RTENI-VISA RTE Agilent 34401a PXIe-5185 Simulated DMM HAL Plug-Ins Demo Example—Package Dependencies DUT A001Test Station 1
  • 25. 1. Build packages 2. Distribute packages on a feed 3. Register the feed 4. Browse and install packages 5. Build/distribute updates 6. Install updates Overview of Workflow With and
  • 26. Demo 1. Build packages 2. Distribute packages on a feed 3. Register the feed 4. Browse and install packages 5. Build/distribute updates 6. Install updates Development Computer
  • 27. Demo 1. Build packages 2. Distribute packages on a feed 3. Register the feed 4. Browse and install packages 5. Build/distribute updates 6. Install updates Development Computer Feed Hosted on local/network folder or web server
  • 28. Demo 1. Build packages 2. Distribute packages on a feed 3. Register the feed 4. Browse and install packages 5. Build/distribute updates 6. Install updates Target Computer
  • 29. Demo 1. Build packages 2. Distribute packages on a feed 3. Register the feed 4. Browse and install packages 5. Build/distribute updates 6. Install updates Target Computer
  • 30. Demo 1. Build packages 2. Distribute packages on a feed 3. Register the feed 4. Browse and install packages 5. Build/distribute updates 6. Install updates Development Computer
  • 31. Demo 1. Build packages 2. Distribute packages on a feed 3. Register the feed 4. Browse and install packages 5. Build/distribute updates 6. Install updates Target Computer
  • 32. Distributing a Componentized Application Using Package Installer
  • 34. Package Installer—What Gets Installed? ▪ NI Package Manager ▪ Your package and any dependencies
  • 35. Online Package Installer Lightweight Package Installer NI-DAQmx 18.0 Feed downloads.ni.com/…/ni-daqmx LabVIEW NXG Run-Time Engine 2.1 Feed downloads.ni.com/…/ni-labview-nxg-rte Internal Acme Feed mynetworkinternal acme feed
  • 36. Distributing a Componentized Application Using SystemLink™
  • 37. Track systems through a central web interface Search systems across all groups Multi-select to perform functions in parallel (e.g., install, restart) Manage system configuration, health, and performance through a central web application. Classify systems into groups Introduction to
  • 38. 1. Build packages 2. Distribute packages on SystemLink feed 3. (Optional) Create states 4. Push software to clients 5. Push updates to clients Overview of Deployment Workflow With and
  • 39. Overview of Workflow 1. Build packages 2. Distribute packages on SystemLink feed 3. (Optional) Create states 4. Push software to clients 5. Push updates to clients Development Computer
  • 40. Overview of Workflow 1. Build packages 2. Distribute packages on SystemLink feed 3. (Optional) Create states 4. Push software to clients 5. Push updates to clients
  • 41. Overview of Workflow 1. Build packages 2. Distribute packages on SystemLink feed 3. (Optional) Create states 4. Push software to clients 5. Push updates to clients
  • 43. Recap I. Would my application benefit from componentization? II. How do I architect a componentized application? III. How do I build a componentized application? IV. How do I distribute a componentized application?
  • 45. Getting Started 1. Install NI Package Manager (if not already installed)1 http://www.ni.com/downloads/ni-package-manager/
  • 46. Getting Started 1. Configure NI Package Manager to show package and feed management tools 2
  • 47. Getting Started 1. Install support for LabVIEW package build specification ▪ LabVIEW 2018 and later: already includes package build specification ▪ LabVIEW 2014–2017: must install LabVIEW Package Builder through NIPM 3
  • 48. Getting Started 2. Install Feed Manager tool from VIPM or GitHub ▪ NIPM API in LabVIEW: https://github.com/allenh-ni/nipm-api-labview ▪ Feed Manager GUI: https://github.com/allenh-ni/nipm-feed-manager-gui-labview 4
  • 49. NI Package Manager Workflow (Recap) 1. Build packages 2. Distribute packages on a feed 3. Register the feed 4. Browse and install packages 5. Build/distribute updates 6. Install updates
  • 51. Additional Best Practices for Building and Distributing LabVIEW Applications ▪ NIWeek 2017: 5 Tips to Develop, Deploy, and License a Memorable Application https://www.studiobods.com/en/niweek2017-ad568/ ▪ NIWeek 2017: LabVIEW Application Builder and Continuous Integration https://www.studiobods.com/en/niweek2017-ts721/
  • 53. What should I build from my components? ▪ EXE ▪ Plug-ins ▪ Source distributions ▪ Packed project libraries (PPLs) ▪ Configuration files
  • 54. What should I build into the EXE? ▪ Top-level VI ▪ Common dependencies needed by other plug-ins Examples ▪ Main GUI VI ▪ Main Launcher VI ▪ Parent classes How ▪ Pull necessary dependencies into EXE by calling them from the top-level VI ▪ Exclude plug-ins from the EXE by calling them dynamically EXE
  • 55. What should I build into a source distribution? ▪ Plug-ins with class relationships that span across component boundaries ▪ Plug-ins load dynamically by a factory pattern (OOP) Examples ▪ HAL/MAL plug-ins How ▪ Source distribution build specification ▪ Remove block diagrams ▪ Exclude code already included in the top-level EXE SOURCE DISTRIBUTION
  • 56. What should I build into a PPL? ▪ Static libraries that need to be updated independently of the main EXE Examples ▪ Subpanels ▪ Algorithms How ▪ Packed project library build specification PACKED PROJECT LIBRARY LIBRARY
  • 57. So which method should I use to build my plug-in? Source Distribution ▪ Simpler build process ▪ More files on disk ▪ Source code more exposed Packed Project Library (.lvlibp) ▪ More complex build process ▪ Single file per plug-in ▪ No source code exposed
  • 58. Follow-Up Content for Deploying Plug-Ins ▪ Recommendations for Deploying LabVIEW Plug-Ins in the Run-Time Engine https://labviewguru.com/2013/12/07/the-nuances-of-deploying-plugins-in-labview/ ▪ Best Practices for Packaging Code in LabVIEW http://www.ni.com/webcast/3798/en/ ▪ Example Plug-In Framework Using Source Distributions https://forums.ni.com/t5/LabVIEW-Development-Best/Measurement-Utility- Plugin-Hardware-Abstraction-Layer-Using/ta-p/3531389 ▪ Example Plug-In Framework Using PPLs https://www.studiobods.com/en/niweek2018-ts1043/ https://forums.ni.com/t5/LabVIEW-Development-Best/Plug-in-Architecture- using-Packed-Project-Libraries-lvlibp/ta-p/3514395
  • 59. NI Package Management Content http://bit.ly/nipkg
  • 60. Before you go, take the survey.