SlideShare uma empresa Scribd logo
1 de 20
Challenges in Porting & Abstraction
Getting Locked-In

Applications are developed with a particular platform in mind
   The software is locked to the current platform
   If a component of that platform changes, the application will no
   longer run without costly changes to the code due to variances
   in platforms

Reasons platforms change
   Changes in technical requirements
   Switching to more economical platforms
   Platform becomes obsolete
   Market & industry demands
Advantages of Software Reuse

Lots of time and money go into developing an application
   This investment must be protected when platforms change
   Developers need to leverage their existing software to
   re-coup the time and money

Software reuse can be accomplished two ways:
   Porting existing code to a new platform
   Using an abstraction platform for new code
   development

Challenges are brought about by variances in platforms
Variations in OS Platforms

OS Model & Type Variations
   Single address (Kernel model)
   Virtual memory (Process model)
   Single vs. multi-processor
   32/64 bit architecture
   SMP/UP processor model
   Real-time or non real-time
   Safety critical certifications (Do178B, ARINC653, etc.)
   Security certifications
   OS emulations on host platforms
Variations in OS Platforms

OS Process API Variations
   Real-time vs. non real-time
   Process creation (spawn, exec, fork, etc.)
   Inter-process communication (signals, messaging, pipes, etc.)
   Shared memory (data protection)

OS Task API Variations
   Scheduling models (priority based, time-slice, etc.)
   Priority levels & ranges
   Task stack variations
   Critical region protection
Variations in OS Platforms

OS Messaging API Variations
   Fixed/Variable message queues
   Sending message (fixed vs. unlimited)

OS Mutex API Variations
   Shared vs. use within a process
   Deadlock prevention (priority in-heritance, ceiling, etc.)
   Performance impact
Variations in OS Platforms

OS I/O System API Variations
   Proprietary vs. UNIX/ANSI model
   Offers levels of I/O control functions (ioctl)
   Device driver model variations (Linux vs. Windows drivers)

OS Semaphore API Variations
   Binary vs. counting semaphores
   Usage within & across processes
   Dispatch order (FIFO, LIFO, Priority)
   Suspension (Polling vs. true)
Variations in OS Platforms

OS Memory API Variations
   Fixed vs. variable allocation
   Virtual, physical or shared
   Defrag algorithm
   Alignment issues(architecture dependency)

OS Clock & Timer API Variations
   Hardware Clock (timer interrupts per second)
   System Tick (interrupts per tick)
     • Timer resolution
     • Sleep & other application waits
What is Porting?

Porting is the ability to reuse software from one environment to
another by making minimal changes to the existing code

Porting can turn into a major code-rewrite if the underlying OS
platforms are very different
    This is a tedious and error prone task
Importance of Porting

Porting is usually quicker and cheaper than performing a full code
rewrite

Existing code already works and has been perfected in the field
    Throwing it away and starting from scratch
    because of a change in environments is
    not sensible

A porting tool can greatly decrease the amount
of manual work involved
Challenges in Porting

Differences in OS APIs

Missing OS functionalities

Obsolete APIs

Managing multiple code bases across different
OS versions

Misleading POSIX portability
What is Abstraction?

Abstraction provides the ability to develop software that can be re-
used across multiple environments without changing the code

A good abstraction protects software investment
    Keeps it from being locked-to a particular platform
    from day one
Importance of Abstraction

Negates future porting issues and protects the code
   Avoids shifting the focus from the organization’s core
   competencies

Ensures that the fundamental OS resources behave the same
across all platforms

Reduces potential learning curve and makes
the concept of code reuse easier to adopt
Importance of Abstraction

Allows for development of host based proof-of-concept application
quickly

Product development knowledge is not locked
to a specific vendor’s tools, IDE or platform

Hardware changes won’t impact applications
   Application development team can keep
   developing without worrying about
   changes to the hardware or underlying
   platform
Challenges in Abstraction

Has to support a variety of operating systems and account for new
versions in the future

Should not impact the application’s performance

Should not fully rely on the underlying OS
Abstraction Model Components


Portability
    Support for a wide variety of OS, able to account for variances
    Able to support a new OS quickly
    API compliance at behavior level, not just interface level

Performance
    Resource pooling
    API profiling & optimization

Just-In-Time Virtualization of OS Models
Abstraction Model Components


Stability & Robustness
    Mission critical features
    OS hardening

Development Flexibility
   Simple, intuitive and thread-safe APIs
   Multiple API use within a single application
   Scalability within a component
   API usage across process, user-mode or
   kernel-mode
Example Abstraction Model
Porting and Abstraction Lab
Q&A

Questions?

Contact MapuSoft
   www.mapusoft.com
   1-877-MAPUSOFT

Mais conteúdo relacionado

Mais procurados

Presentation on component based software engineering(cbse)
Presentation on component based software engineering(cbse)Presentation on component based software engineering(cbse)
Presentation on component based software engineering(cbse)
Chandan Thakur
 
Component Based Distributed System Development
Component Based Distributed System DevelopmentComponent Based Distributed System Development
Component Based Distributed System Development
Emmanuel Fuchs
 
System scalability
System scalabilitySystem scalability
System scalability
AVEVA
 

Mais procurados (17)

Component Base Development
Component Base DevelopmentComponent Base Development
Component Base Development
 
The benefits of software reuse
The benefits of software reuseThe benefits of software reuse
The benefits of software reuse
 
Presentation on component based software engineering(cbse)
Presentation on component based software engineering(cbse)Presentation on component based software engineering(cbse)
Presentation on component based software engineering(cbse)
 
Component Based Testing Using Finite Automata
Component Based Testing Using Finite AutomataComponent Based Testing Using Finite Automata
Component Based Testing Using Finite Automata
 
Introduction to DL-BUILDER
Introduction to DL-BUILDERIntroduction to DL-BUILDER
Introduction to DL-BUILDER
 
Ch19
Ch19Ch19
Ch19
 
Software engineering : Layered Architecture
Software engineering : Layered ArchitectureSoftware engineering : Layered Architecture
Software engineering : Layered Architecture
 
Component Based Distributed System Development
Component Based Distributed System DevelopmentComponent Based Distributed System Development
Component Based Distributed System Development
 
Aspect Oriented Development
Aspect Oriented DevelopmentAspect Oriented Development
Aspect Oriented Development
 
InterConnect 2017 : Programming languages in the enterprise: Which language s...
InterConnect 2017 : Programming languages in the enterprise: Which language s...InterConnect 2017 : Programming languages in the enterprise: Which language s...
InterConnect 2017 : Programming languages in the enterprise: Which language s...
 
System scalability
System scalabilitySystem scalability
System scalability
 
Snug2007 Presentation
Snug2007 PresentationSnug2007 Presentation
Snug2007 Presentation
 
Sdlc
SdlcSdlc
Sdlc
 
Eric grover strategies for sharing code with windows 8 and windows phone 8 ...
Eric grover   strategies for sharing code with windows 8 and windows phone 8 ...Eric grover   strategies for sharing code with windows 8 and windows phone 8 ...
Eric grover strategies for sharing code with windows 8 and windows phone 8 ...
 
Managing Application Compatibility In Windows 7
Managing Application Compatibility In Windows 7Managing Application Compatibility In Windows 7
Managing Application Compatibility In Windows 7
 
Jumpstart application development
Jumpstart application developmentJumpstart application development
Jumpstart application development
 
Jumpstart application development
Jumpstart application developmentJumpstart application development
Jumpstart application development
 

Destaque

ヨーロッパスタディ紹介(Slideshare用)
ヨーロッパスタディ紹介(Slideshare用)ヨーロッパスタディ紹介(Slideshare用)
ヨーロッパスタディ紹介(Slideshare用)
Yusuke Fukuda
 

Destaque (7)

ヨーロッパスタディ紹介(Slideshare用)
ヨーロッパスタディ紹介(Slideshare用)ヨーロッパスタディ紹介(Slideshare用)
ヨーロッパスタディ紹介(Slideshare用)
 
Embedded Solutions 2010 : ARM-Cortex Based MCU's , by ARROW-ISRAEL
Embedded Solutions 2010 : ARM-Cortex Based MCU's , by ARROW-ISRAEL Embedded Solutions 2010 : ARM-Cortex Based MCU's , by ARROW-ISRAEL
Embedded Solutions 2010 : ARM-Cortex Based MCU's , by ARROW-ISRAEL
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming Convention
 
How to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanHow to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media Plan
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post Formats
 
Embedded Solutions 2010: Intel Multicore by Eastronics
Embedded Solutions 2010:  Intel Multicore by Eastronics Embedded Solutions 2010:  Intel Multicore by Eastronics
Embedded Solutions 2010: Intel Multicore by Eastronics
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
 

Semelhante a Embedded Solutions 2010 : Challenges In Porting and Abstraction , by Mapusoft

Ovp Introduction Presentation (04 Feb 10)
Ovp Introduction Presentation (04 Feb 10)Ovp Introduction Presentation (04 Feb 10)
Ovp Introduction Presentation (04 Feb 10)
simon56
 
Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody Software
Bill Duncan
 
Mainframe Architecture & Product Overview
Mainframe Architecture & Product OverviewMainframe Architecture & Product Overview
Mainframe Architecture & Product Overview
abhi1112
 
Best Practices for Cross-Platform Native Applications
Best Practices for Cross-Platform Native ApplicationsBest Practices for Cross-Platform Native Applications
Best Practices for Cross-Platform Native Applications
Kevin Whinnery
 
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel Corporation
 

Semelhante a Embedded Solutions 2010 : Challenges In Porting and Abstraction , by Mapusoft (20)

parallel language and compiler
parallel language and compilerparallel language and compiler
parallel language and compiler
 
Ovp Introduction Presentation (04 Feb 10)
Ovp Introduction Presentation (04 Feb 10)Ovp Introduction Presentation (04 Feb 10)
Ovp Introduction Presentation (04 Feb 10)
 
Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody Software
 
What's New in InTouch Machine Edition (ITME)
What's New in InTouch Machine Edition (ITME)What's New in InTouch Machine Edition (ITME)
What's New in InTouch Machine Edition (ITME)
 
Learn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFVLearn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFV
 
Morphis Technologies Overview
Morphis Technologies OverviewMorphis Technologies Overview
Morphis Technologies Overview
 
Parallel language & compilers
Parallel language & compilersParallel language & compilers
Parallel language & compilers
 
Petapath HP Cast 12 - Programming for High Performance Accelerated Systems
Petapath HP Cast 12 - Programming for High Performance Accelerated SystemsPetapath HP Cast 12 - Programming for High Performance Accelerated Systems
Petapath HP Cast 12 - Programming for High Performance Accelerated Systems
 
Mainframe Architecture & Product Overview
Mainframe Architecture & Product OverviewMainframe Architecture & Product Overview
Mainframe Architecture & Product Overview
 
White Paper: Scalable Lifecycle Management via Perforce
White Paper: Scalable Lifecycle Management via PerforceWhite Paper: Scalable Lifecycle Management via Perforce
White Paper: Scalable Lifecycle Management via Perforce
 
What is New in Wonderware InduSoft Web Studio 8.0+SP1+Patch 1
What is New in Wonderware InduSoft Web Studio 8.0+SP1+Patch 1What is New in Wonderware InduSoft Web Studio 8.0+SP1+Patch 1
What is New in Wonderware InduSoft Web Studio 8.0+SP1+Patch 1
 
Let's banish "it works on my machine"
Let's banish "it works on my machine"Let's banish "it works on my machine"
Let's banish "it works on my machine"
 
2007 SAPTech Ed
2007 SAPTech Ed2007 SAPTech Ed
2007 SAPTech Ed
 
Host Simulation
Host SimulationHost Simulation
Host Simulation
 
Hetergeneous Compute with Standards Based OFI/MPI/OpenMP Programming
Hetergeneous Compute with Standards Based OFI/MPI/OpenMP ProgrammingHetergeneous Compute with Standards Based OFI/MPI/OpenMP Programming
Hetergeneous Compute with Standards Based OFI/MPI/OpenMP Programming
 
Kavita resume
Kavita resume Kavita resume
Kavita resume
 
MMS2011_BC34_Plas_Final
MMS2011_BC34_Plas_FinalMMS2011_BC34_Plas_Final
MMS2011_BC34_Plas_Final
 
Best Practices for Cross-Platform Native Applications
Best Practices for Cross-Platform Native ApplicationsBest Practices for Cross-Platform Native Applications
Best Practices for Cross-Platform Native Applications
 
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
 
VS TFS 2010 - Part2
VS TFS 2010 - Part2VS TFS 2010 - Part2
VS TFS 2010 - Part2
 

Último

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
Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

Embedded Solutions 2010 : Challenges In Porting and Abstraction , by Mapusoft

  • 1. Challenges in Porting & Abstraction
  • 2. Getting Locked-In Applications are developed with a particular platform in mind The software is locked to the current platform If a component of that platform changes, the application will no longer run without costly changes to the code due to variances in platforms Reasons platforms change Changes in technical requirements Switching to more economical platforms Platform becomes obsolete Market & industry demands
  • 3. Advantages of Software Reuse Lots of time and money go into developing an application This investment must be protected when platforms change Developers need to leverage their existing software to re-coup the time and money Software reuse can be accomplished two ways: Porting existing code to a new platform Using an abstraction platform for new code development Challenges are brought about by variances in platforms
  • 4. Variations in OS Platforms OS Model & Type Variations Single address (Kernel model) Virtual memory (Process model) Single vs. multi-processor 32/64 bit architecture SMP/UP processor model Real-time or non real-time Safety critical certifications (Do178B, ARINC653, etc.) Security certifications OS emulations on host platforms
  • 5. Variations in OS Platforms OS Process API Variations Real-time vs. non real-time Process creation (spawn, exec, fork, etc.) Inter-process communication (signals, messaging, pipes, etc.) Shared memory (data protection) OS Task API Variations Scheduling models (priority based, time-slice, etc.) Priority levels & ranges Task stack variations Critical region protection
  • 6. Variations in OS Platforms OS Messaging API Variations Fixed/Variable message queues Sending message (fixed vs. unlimited) OS Mutex API Variations Shared vs. use within a process Deadlock prevention (priority in-heritance, ceiling, etc.) Performance impact
  • 7. Variations in OS Platforms OS I/O System API Variations Proprietary vs. UNIX/ANSI model Offers levels of I/O control functions (ioctl) Device driver model variations (Linux vs. Windows drivers) OS Semaphore API Variations Binary vs. counting semaphores Usage within & across processes Dispatch order (FIFO, LIFO, Priority) Suspension (Polling vs. true)
  • 8. Variations in OS Platforms OS Memory API Variations Fixed vs. variable allocation Virtual, physical or shared Defrag algorithm Alignment issues(architecture dependency) OS Clock & Timer API Variations Hardware Clock (timer interrupts per second) System Tick (interrupts per tick) • Timer resolution • Sleep & other application waits
  • 9. What is Porting? Porting is the ability to reuse software from one environment to another by making minimal changes to the existing code Porting can turn into a major code-rewrite if the underlying OS platforms are very different This is a tedious and error prone task
  • 10. Importance of Porting Porting is usually quicker and cheaper than performing a full code rewrite Existing code already works and has been perfected in the field Throwing it away and starting from scratch because of a change in environments is not sensible A porting tool can greatly decrease the amount of manual work involved
  • 11. Challenges in Porting Differences in OS APIs Missing OS functionalities Obsolete APIs Managing multiple code bases across different OS versions Misleading POSIX portability
  • 12. What is Abstraction? Abstraction provides the ability to develop software that can be re- used across multiple environments without changing the code A good abstraction protects software investment Keeps it from being locked-to a particular platform from day one
  • 13. Importance of Abstraction Negates future porting issues and protects the code Avoids shifting the focus from the organization’s core competencies Ensures that the fundamental OS resources behave the same across all platforms Reduces potential learning curve and makes the concept of code reuse easier to adopt
  • 14. Importance of Abstraction Allows for development of host based proof-of-concept application quickly Product development knowledge is not locked to a specific vendor’s tools, IDE or platform Hardware changes won’t impact applications Application development team can keep developing without worrying about changes to the hardware or underlying platform
  • 15. Challenges in Abstraction Has to support a variety of operating systems and account for new versions in the future Should not impact the application’s performance Should not fully rely on the underlying OS
  • 16. Abstraction Model Components Portability Support for a wide variety of OS, able to account for variances Able to support a new OS quickly API compliance at behavior level, not just interface level Performance Resource pooling API profiling & optimization Just-In-Time Virtualization of OS Models
  • 17. Abstraction Model Components Stability & Robustness Mission critical features OS hardening Development Flexibility Simple, intuitive and thread-safe APIs Multiple API use within a single application Scalability within a component API usage across process, user-mode or kernel-mode
  • 20. Q&A Questions? Contact MapuSoft www.mapusoft.com 1-877-MAPUSOFT