Challenges in Application Porting and Abstraction Presented by: Raj - - PowerPoint PPT Presentation

challenges in application porting and abstraction
SMART_READER_LITE
LIVE PREVIEW

Challenges in Application Porting and Abstraction Presented by: Raj - - PowerPoint PPT Presentation

Challenges in Application Porting and Abstraction Presented by: Raj Johnson, President & CEO www.mapusoft.com 1-877-MAPUSOFT What is Porting? Porting is the ability to reuse software from one environment to another by making minimal


slide-1
SLIDE 1

Challenges in Application Porting and Abstraction

Presented by: Raj Johnson, President & CEO www.mapusoft.com 1-877-MAPUSOFT

slide-2
SLIDE 2

What is Porting?

  • Porting is the ability to reuse software from one

environment to another by making minimal changes to the existing code. Unfortunately, these minimal changes are not easy to do when it comes to porting software from one Operating System (OS) platform to another or even among versions of a single OS

  • If porting requires lot of changes to the existing

code, then it’s called a “code re-write”

  • Linux 2.0 to Linux 2.7 -> Porting
  • Linux to VxWorks -> Rewrite
slide-3
SLIDE 3

Importance of Porting

Porting is usually quicker and cheaper than performing a

full code rewrite.

However, manual porting can turn into a major code-rewrite

if the underlying OS platforms are very different

Ideally, If you can re-use your existing code without having

to do any “porting” at all, then it’s all the more better

Existing code works and has been perfected in the field.

Throwing it away and starting from scratch because of a change in environments is not sensible

Porting is more effective and efficient if there is a lot of

code

slide-4
SLIDE 4

Advantages of Porting

Technical advantages

Products can be supported for a longer life cycle Requires less engineering resources Scalability on all platforms Versatility to run on different platform environments

Business advantages

Reduces project time Saves money, and other valuable resources Fewer risk Factors

slide-5
SLIDE 5

Challenges in Application Porting

Technical issues

Need to hire skilled and experienced professionals

in specific technologies

Resources with a good grasp of portability issues Tools required or third party support Third party dependencies

Business issues

Structure to support on new platforms

(infrastructure)

Development & support cost

slide-6
SLIDE 6

Challenges in Application Porting

Business issues

Structure to support on new platforms

(infrastructure)

Development & support cost

slide-7
SLIDE 7

Challenges in Application Porting

Project management issues

Resources Management Schedule Review Plan for any unforeseen circumstances

slide-8
SLIDE 8

Challenges in Application Porting

Differences in OS versions

Process support in VxWorks 6.x but not in 5.x OS differences between 32 and 64 bit CPU

Missing OS functionalities Discontinue use of obsolete APIs Change code to adapt to new OS versions Manage multiple code bases across different versions Forced to upgrade OS due to vendor not supporting a

specific OS version. As a result, also forced to upgrade hardware (from VME -> cPCI platforms).

slide-9
SLIDE 9

Challenges in Application Porting

Application Programming Interfaces (APIs)

Proprietary APIs

Code gets locked to a specific vendor’s OS platform

POSIX – Industry Standard API

POSIX complaint versus conformance – variations in

API behavior

Levels of POSIX API support & what is actually

supported by OS vendors

Vendor specific POSIX implementations (mmu/non-

mmu, priority differences, hard real-time, etc.).

POSIX is not the answer to your porting problem

slide-10
SLIDE 10

Challenges in Application Porting

Code may compile on one compiler but not another Code developed in a specific language may become

  • bsolete (Ada, Fourtran, etc.)

Tools not available for new hardware platform Development on host may not be possible Delay in start of development until the new target

hardware/tools become available

Need to deal with target issues while porting

slide-11
SLIDE 11

Challenges in Application Porting

Longer-term porting solution:

Develop common OS interface APIs that your code

can reuse across multiple OS & their versions,

  • therwise called an in-house OS abstraction

Check out the commercial OS abstraction solutions Engage a porting consultant

slide-12
SLIDE 12

Porting Tools

Make it easy to support a wide variety of OSs Provide tools that can run in simulation and debugging

modes

Deliver tested and proven architecture Provide postmortem analysis of the code with tools You may have to provide the source code to a third-

party if you utilize them to do the port. Do it yourself by using a tool

Complete porting in less time

Shorten your time to market

slide-13
SLIDE 13

Using a Porting Solution Provider

Advantages

Internal resources are not diverted from the primary

responsibilities

Disadvantages

Sharing of source codes and risk on the IP

generated for long

Training the customer on the functionality and

product

Additional project management and lack of control

  • ver project schedules
slide-14
SLIDE 14

What is Abstraction?

Abstraction Provides the ability for software to be re-

used from one environment to another with no changes to the existing code

Without an OS abstraction, it would be difficult to move

software across OS platforms and their versions

slide-15
SLIDE 15

Importance of Abstraction

Abstraction:

Avoids porting issues and protects the code Ensures the fundamental OS resources behave the

same across all platforms

Protects the core functionality of the application/system Ensures there will be no impact on system performance Avoids shifting focus from the organization’s core

competencies

Reduces potential learning curve and makes the

concept of code reuse easier to adopt

slide-16
SLIDE 16

Advantages of Abstraction

Leverages on existing software and knowledge base Makes porting an easy, simple, and less time-

consuming task

Abstracts all the APIs in the OS Ensures all applications run on different OSs Allows for new OS support quickly and seamlessly Some Abstraction tools can:

Abstract data types, header files, and symbolic

defines

Develop proof-of-concept demo software quickly

slide-17
SLIDE 17

Challenges in Abstraction

OS Abstraction Should support a variety of OS now and

new versions in the future

OS Abstractions should not impact the application’s

performance

Why waste valuable CPU resources Should use compile time translations Should utilize low level/high performance APIs Needs to eliminate dynamic allocation of resources (pre-

allocate)

Should be fully scaleable and have a small footprint

OS Abstractions should not fully rely on the underlying OS

OS Abstractions should add missing API features

slide-18
SLIDE 18

Typical Abstraction Layer

Host / Target OS Platforms

Standard OS Interface Architecture Device Driver Interface

POSIX Support ITRON Support

Embedded Applications

New Embedded Applications Legacy OS Applications PSoS, VxWorks, Nucleus, MQX, ThreadX, QNX, RT Linux Open Source Applications

DOS APPS Flexible Abstractor Module

Legacy OS Support

slide-19
SLIDE 19

Introduction to Software Reuse

A critical strategy for all software development groups Vital to systematically reuse code Important to fully implement the concept of code reuse Reuse code and leverage on the existing software

while moving to the next generation platforms

Provide maximum benefits to an organization

slide-20
SLIDE 20

Importance of Software Reuse

Changes in the system’s architecture and upgrades to

newer technologies

Integrates multiple systems into one that can run on

different platforms

Migrates best selling software solutions to other

platforms

Supports the OS when OS vendors fail to do so Enhances and migrates software components to

newer platforms

slide-21
SLIDE 21

Advantages of Software Reuse

Increases software productivity and interoperability Develops software with fewer resources Reduces software development time and maintenance

costs

Produces more standardized software Produces better quality software and a powerful

competitive advantage

slide-22
SLIDE 22

Other Software Reuse Tools

Host Development

Testing and simulation Begin developing applications before target

hardware is available

Cross-OS driver development

slide-23
SLIDE 23

Other Software Reuse Tools

Profilers

Test and debug the code Run code performance analyses

Code conversion tools

Ada to C/C++ (this can be especially helpful in keeping

  • lder, safety critical military applications up-to-date).