Mobilize Blog

Application Modernization

Recent Posts

Posts by Topic

see all

Preparing for XP End of Life - What YOU Need to Know

Posted by DeeDee Walsh on Oct, 02, 2013 @ 15:10


Windows XP is out of support April 9, 2014.

  • Last day of support is April 8, 2014Windows XP EOL
  • There are 189 days from Oct. 1, 2014 to Apr. 8, 2014
  • Including Thanksgiving, Christmas, New Years Day, Saturdays and Sundays.
  • April 9, 2014, will be Day 0 for XP security vulnerability.
  • If you are still running XP on 4/9/14, you may be out of compliance with:
    • HIPAA
    • PCI
    • SOX

What does EOVS mean?

  • End of vendor support:
  • No…
    • Updates
    • Bug fixes
    • Patches
    • Security holes plugged.
    • Ever.
    • Again.

How big a problem is it?

  • Over 2 billion PCs worldwide connected to Internet
  • Approximately 39% run XP
  • That’s about 800,000,000 computers!
  • XP in the Enterprise: some estimates as high as 48% of PCs

Why should I care?

  • It’s all about security.
  • Currently an XP vulnerability attack is worth $50-100k.
  • After EOVS the price will go up.
  • Hackers will hold attacks until after April 8.
  • Only computers completely isolated will be safe.
  • A single XP desktop can allow a Trojan horse into your net.
  • Running XP inside a VM won’t help. It will still need net access.

The costs of running XP will be high

  • Microsoft will charge exorbitant fees for XP support contracts – which will double each year
  • High cost in lost productivity when XP vulnerabilities are exploited – expected to be in the multi-billions

Custom LOB apps tether you to XP

Over the years, you’ve developed custom software, crucial to running your business…. Yet runs only on Windows XP. 

What has to move?

There are lots of apps that will only run on Windows XP

Old stuff has to move!

  • Anything written in VB 6.0 or earlier
  • Apps that use .NET 1.0, 1.1 and 2.0
  • Older versions of Powerbuilder
  • Older versions of Borland Delphi

Many ways to move your apps off XP

 But most solutions are: 

  • Too expensive
  • Too slow for the business 
  • Too technologically compromised

Let's review the options:

  • Manual rewrite: Replicate existing functionality for modern platforms
  • Do nothing: Keep running the legacy application
  • Packaged software: Purchase commercial off-the-shelf LOB apps
  • Automation tools: Automated code conversion to new platform

The problem with manual rewrites

manual rewrite failure rates

HIGH FAILURE RATE

  • 70% of manual software rewrites fail*

HIGH COST

  • Rewrite costs 4 times more than migration

HUGE DEFECT RATE

  • New code = 20 – 50 bugs/KLOCs
  • 1,000,000 lines of new code: 20-50k bugs

FEATURE CREEP KILLS MANUAL REWRITES

  • Projects overcome by too many features

Other solutions have big downsides

Doing nothing

  • Security and compliance issues like Sarbanes-Oxley, HIPAA and PCI
  • High cost in maintenance, talent and resources

Commercial off-the-shelf

  • Business forced to adapt to applications 
  • Cost is known, but implementation cost is unpredictable
  • Re-training of employees and IT to support

Why migrate old source code?

  • No new bugs created
  • Preserves business value
  • New platform for future enhancement
  • Refactored to support MVC or MVVM
  • Easier to maintain
  • Easier to find trained developers
  • Cheaper and faster than a rewrite
  • “Code doesn’t rust.” Joel Spolsky

When to migrate

  • App still has business value
  • Future maintenance will be likely:
    • Enhancements
    • Changes
    • Bug fixes
  • Current language is obsolete or low-value:
    • Visual Basic
    • COBOL
    • PowerBuilder
    • Informix LINC

What’s the value of automation tools?

 Automated code conversion to new platform

  • Leverage existing business rules
  • Fast and efficient, minimal re-training

Fixed schedule 

  • Reduces calendar time of project by average of 40%

Fixed budget

  • Reduces overall cost up to 90%, minimal retrain and support costs downstream

Reduces risk

  • Reduces risk vs manual rewrite (ie manual coding: 20-50 bugs/KLOC, 70% failure…)

Increase business agility

  • Two-phase approach with functional equivalence as first milestone preserves 100% of business logic on new platform, while setting stage for agile phase 2 feature adds (client use cases, SOA, …)

Other solutions have big downsides

Doing nothing

  • Security and compliance issues like Sarbanes-Oxley, HIPAA and PCI
  • High cost in maintenance, talent and resources

Commercial off-the-shelf

  • Business forced to adapt to applications 
  • Cost is known, but implementation cost is unpredictable
  • Re-training of employees and IT to support

Why migrate old source code?

  • No new bugs created
  • Preserves business value
  • New platform for future enhancement
  • Refactored to support MVC or MVVM
  • Easier to maintain
  • Easier to find trained developers
  • Cheaper and faster than a rewrite
  • “Code doesn’t rust.” Joel Spolsky

When to migrate

  • App still has business value
  • Future maintenance will be likely:
    • Enhancements
    • Changes
    • Bug fixes
  • Current language is obsolete or low-value:
    • Visual Basic
    • COBOL
    • PowerBuilder
    • Informix LINC

What's the value of automation tools?

Automated code conversion a new platform

  • Leverage existing business rules
  • Fast and efficient, minimal re-training

Fixed schedule

  • Reduces calendar time of project by average of 40%

Fixed budget 

  • Reduces overall cost up to 90%, minimal retrain and support costs downstream

Reduces risk 

  • Reduces risk vs manual rewrite (ie manual coding: 20-50 bugs/KLOC, 70% failure…)

Increase business agility

  • Two-phase approach with functional equivalence as first milestone preserves 100% of business logic on new platform, while setting stage for agile phase 2 feature adds (client use cases, SOA, …)

How Mobilize.Net works

In the process of transforming thousands of migration projects, Mobilize.Net has developed a mature migration methodology that results in a predictable, controlled and cost-effective migration process. The Migration Methodology is based on the Microsoft Solution Framework and the best practices recommended by the Project Management Institute, with custom process and models developed by Mobilize.Net.

Mobilize modernization process

The Migration Methodology presents a comprehensive view of the migration project:

  • Project Planning: The project formulation and analysis process, called a Migration Blueprint, provides a detailed project plan with an accurate budget and schedule. The assessment reflects both the project’s requirements and all the experience that Mobilize.Net has gathered in thousands of migration projects throughout the years.
  • Migration Team: It is important to have the right team to perform a successful migration. The Migration Methodology defines roles and responsibilities for the team.
  • Project Life Cycle: There are some significant differences between a traditional software development project and a migration. The Migration Methodology's project life cycle addresses the differences to ensure flawless execution and results.
  • Quality Assurance: The Migration Methodology outlines Quality Assurance activities and milestones to guarantee the project meets or exceeds the expectations of customers.

Under the covers: Matchine technology

The Mobilize.Net solution is based on Artinsoft’s software migration technology. The core technology is based on Artificial Intelligence concepts:
  • Matchine™, a syntactic extension to an object-oriented language aimed at supplementing it with language-oriented programming features and environment that, using grammar-based representations, very high level pattern matching and algebraic simplifications, allows mapping source code concepts by means of natural deduction;
  • Evolution Framework™, a comprehensive set of sophisticated tools specially designed for the construction of software transformation, software migration and upgrade systems. A powerful engine that uses grammatical objects and equivalence rewriting carries out semantic transformations on massive amounts of source code.
Mobilize.Net technology has migrated billions of lines of code in a large variety of environments, which include migrating legacy programming languages such as Visual Basic 6, ASP, Linc, Informix, Oracle Forms, RPG, J++, and PHP.
matchine

Mobilize.Net tools are modular, extensible and configurable building blocks that can be reused when creating different conversion factories.  A factory can fully understand and apply best engineering practices to source code, and help evolving source code automatically from simple refactorings to complex program-slice transformations to replace a source code aspect, like GUI or DB access technology.

Automated code conversion uses an architecture similar to a compiler, except that the output is native source code rather than object code. 

Why move to a modern architecture?

Advantages of Modern Architecture vs Monolithic

Modern Architecture offers advantages:

  • Scalability:  handle larger volumes
  • Portability:  reach multiple platforms
  • Maintainability: increase flexibility and lower costs

Many Architecture Alternatives:

  • N-Tier/Layer Architectures
    • Tier: Physical Separation
    • Layer: Logical Separation
  • 3-Tier
    • Presentation
    • Business/Logic
    • Data
  • Model View Controller

Model View Controller is the architecture of choice for web

  • Separates the representation of information from the user’s interaction with it. The central idea behind MVC is code reusability and separation of items

Model View Controller Offers Agility

Mobile and Web Apps Require a Flexible Architecture

  • The target architecture needs to:
    • Change the look-and-feel without changing the core/logic
    • Present data under different contexts (desktop, web, mobile, etc.)
    • Interact with/access data under different contexts (touch screen on a mobile device, keyboard on a computer)
    • Maintain multiple views of the same data (list, thumbnails, detailed, etc.)

Model View Controller Delivers Flexibility and Agility

  • Separates core functionality from the presentation and control logic that uses this functionality
  • Allows multiple views to share the same data model
  • Makes supporting multiple clients easier to implement, test, and maintain

Model View Controller Overview

Design pattern for graphical systems that promotes separation between model and view

Model

  • Manages the behavior and data of the application domain
  • Responds to requests for information about its state (usually from the view)
  • Follows instructions to change state (usually from the controller)

View

  • Renders the model into a form suitable for interaction, typically a user interface (multiple views can exist for a single model for different purposes)

Controller

  • Receives user input and initiates a response by making calls on model objects
  • Accepts input from the user and instructs the model and viewport to perform actions based on that input

Topics: software development, application modernization, application migration, Visual Basic Upgrade Companion, Windows XP, HTML5, Mobile Application Development