Tools to Migrate Windows Applications · IIS I E IIS I E ASP IIS I E ASP SQ L Se rve r IIS I E ASP...

31
Tools to Migrate Windows Applications

Transcript of Tools to Migrate Windows Applications · IIS I E IIS I E ASP IIS I E ASP SQ L Se rve r IIS I E ASP...

Tools to Migrate Windows Applications

2

Microsoft Application Technologies

Browser BasedHTML Pages Created using Microsoft Front PageVB Scripts rendered by the browser

Server BasedActive Server Pages (ASP)ActiveX Data Objects (ADO) to access dataCOM (Component object model) and MTSSQL Server database

Client BasedGUI Applications created using Microsoft Languages and tools

Visual Basic and Visual C++ are the primary languages used by developers to create both server and client based applications

3

Application Migration Study

IISIE

IISIE

ASP

IISIE

ASP SQL Server

IISIE

ASP SQL Server

IISIE

ASP SQL Server

IIS SQL Server

IE

ASP COM

IIS SQL Server

IE

ASP COM

IIS SQL ServerIE

ASP COM

MS DTC

Used 9 Application Patterns typically used by Microsoft Developers

Today we will focus on patterns 3 and 9.

VB ClientUse ADO to Update Database

9

Transactional SP/MTS (VC++)8

Stored Procedures (VC++)7

Stored Procedures (VB)6

ADO/SP/DHTML5

ADO + Stored Procedures4

ADO3

Dynamic Data2

Static HTML1

Application Patterns

VB ClientUse ADO to Update Database

9

Transactional SP/MTS (VC++)8

Stored Procedures (VC++)7

Stored Procedures (VB)6

ADO/SP/DHTML5

ADO + Stored Procedures4

ADO3

Dynamic Data2

Static HTML1

Application Patterns

4

Microsoft Application Technologies

Visual BasicVisual C++

COM/DCOM/MTS

SQL Server.NET

Web Applications

Client Applications

Server Side Components

HTML PagesASP Pages

COM/DCOM/MTS

SQL Server.NET

Server Side Components

Browser

5

Demo: On Demand Insurance Company

SQL ServerWindows 2000 Server

InternetIIS (HTML + ASP)Windows 2000 Server

Web Browser

Visual Basic Client

Old Windows Applications

6

Migrate Microsoft Applications to IBM WebSphere/J2EE Server

AppletAppletContainerContainer

AppletApplet

J2SEJ2SE

ApplicationApplicationClientClient

ContainerContainerApplication Application

ClientClient

J2SEJ2SE

RMI-IIOP

DatabaseDatabase

Client-Side

Server-SideHTTPSSL

HTTPSSL

Web ContainerWeb Container

JSP PageJSP Page ServletServlet Enterprise Enterprise JavaBeanJavaBean

RMI-IIOP EJB ContainerEJB Container

J2SEJ2SE J2SEJ2SEJTAJTA

JMS

JMS

JAA

SJA

AS

JavaJavaMailMail

JAFJAF

ConnectorsConnectors

JAXP

JAXP

JDB

CJD

BC

JavaJavaMailMail

JAFJAF

JMS

JMS

JAASJAAS

JAXPJAXP

JDBCJDBC

(browser)(browser)

JTAJTA

JMS

JMS

JAA

SJA

AS

ConnectorsConnectors

JAXP

JAXP

JDB

CJD

BC

7

Enterprise Capability Running on Linux

Robert Frances Group (RFG) Conducted a study* on WebSphere vs. .NET and came up with the following conclusions

WebSphere is significantly less expensive to operate than .NET especially on Linux. WebSphere Deployment was 32% cheaper than .NETWebSphere has proven track record of security when compared to .NETWebSphere performs betterWebSphere is the best choice for Enterprise development project

*WebSphere vs. .NET: Choosing an e-business platform in the enterpriseDownload the report from RFG at : http://www.rfgonline.com/reprints/ibm/RFGJ2EEvsNET.PDF

WS .NETStrategic Position 9 4Acquisition 8 7Development 7 6Deployment 8 6Management 9 6Long-term Effects 8 5Totals 8 6Results of the RFG Study*

Platform Scores

8

How Do You Migrate?

Understand the applicationList the application components that need to be migrated

Obtain tools that help migrationMigration steps

Convert the application to be based on J2EE Use conversion tools where availableUse Rational Application Developer to import migrated code and fix if necessary

Migrate the application to WebSphere/J2EE on Windows firstThen re-deploy on Linux

Migrate SQL Server Databases to DB/2 on LinuxDB2 Migration Toolkit (MTK) makes the migration task easy

Consider Interoperability and Simulation if necessary for co-existence during migration

9

Migration Tips

DB2 MTK (Migration Toolkit)

DB2SQL Server

VB Converter from Diamond Edge

JavaVisual Basic

ManualJava ScriptJscript

•JASP from NetCoole•ASP2JSP Converter from Diamond Edge

Java ScriptVisual Basic Script

•JASP from NetCoole•ASP2JSP Converter from DiamondEdge

JSPASP

•Manual or•HTML Editors

HTML (based on Open Standards)

HTML (with proprietary FrontPage tags)

Using ToolToMigrate From

DB2 MTK (Migration Toolkit)

DB2SQL Server

VB Converter from Diamond Edge

JavaVisual Basic

ManualJava ScriptJscript

•JASP from NetCoole•ASP2JSP Converter from Diamond Edge

Java ScriptVisual Basic Script

•JASP from NetCoole•ASP2JSP Converter from DiamondEdge

JSPASP

•Manual or•HTML Editors

HTML (based on Open Standards)

HTML (with proprietary FrontPage tags)

Using ToolToMigrate From

10

Lets Now Migrate On Demand Insurance Company

Understand the application - Done!List the application components that need to be migrated

Web Applications TechnologiesHTMLASP (includes ADO)VB ScriptJScript

Visual BasicSQL Server Stored Procedures

Obtain tools that help migrationRational Application Developer (RAD)JASP from NetCooleASP2JSP converter from Diamond EdgeVB Converter from Diamond EdgeDB2 MTK from IBM

11

Migrate Web Applications First

MozillaNetscapeOpen OfficeLinux

JavaLinux

Samba BasedFile/Print

Server

XAD, Kerberos, OpenLDAPDNS

DHCP

Domino

Web Application

(HTTP, WebSphere)

Internet ExplorerOfficeOutlook

Visual Basic Client

File ServerPrint Server

Domain ControllerActive Directory

DNSDHCP

Exchange 2000

Web Application

(IIS / ASP / COM)

SQL Server

12

Demo: Let's Begin Migrating Web Applications

ASP to JSP ConversionJASP from NetCooleASP2JSP Converter from DiamondEdge

Converting ScriptsTools complete most of the workFix errors using Rational Application Developer

Replace references to SQL database driver with that for DB2

13

Migrate from SQL Server to DB2/Linux

MozillaNetscapeOpen OfficeLinux

JavaLinux

Samba BasedFile/Print

Server

XAD, Kerberos, OpenLDAPDNS

DHCP

Domino

Web Application

(HTTP, WebSphere)

Internet ExplorerOfficeOutlook

Visual Basic Client

File ServerPrint Server

Domain ControllerActive Directory

DNSDHCP

Exchange 2000

Web Application

(IIS / ASP / COM)

SQL Server DB2SQL Server

14

Get it from http://www.ibm.com/software/data/db2/migration/mtk/

5 Phase MigrationSpecify source using DDL files extracted from source or import scripts from previous extractionsConvert source DDL into DB2 DDL

Select formatting options that affect the conversion outputMTK generates 2 outputs

Refine generates DDL according to messages in report file, and return conversion to apply the changes

Repeat as necessaryGenerate data transfer scripts that will create DB2 files and stored proceduresDeploy to DB2

Once the migration is complete check client application ODBC/JDBC calls to make sure table and column names are correct

Lets now Migrate from SQL Server to DB2/Linux using DB2 Migration Toolkit (MTK)

15

Demo: DB2 Migration Toolkit

SQL Server 2000 Database to be migrated

Run the DB2 Migration TookitUse Wizards to Convert

TablesStored Procedures

View Migration Report

Run scripts generated by the Toolkit to Import to DB2

Run DB2 on Linux!

16

Here's What we did to Migrate the Web Application

DB2 MTK (Migration Toolkit)

DB2SQL Server

ManualJava ScriptJscript

•JASP from NetCoole•ASP2JSP Converter from Diamond Edge

Java ScriptVisual Basic Script

•JASP from NetCoole•ASP2JSP Converter from DiamondEdge

JSPASP

•Manual or•HTML Editors

HTML (based on Open Standards)

HTML (with proprietary FrontPage tags)

Using ToolToMigrate From

DB2 MTK (Migration Toolkit)

DB2SQL Server

ManualJava ScriptJscript

•JASP from NetCoole•ASP2JSP Converter from Diamond Edge

Java ScriptVisual Basic Script

•JASP from NetCoole•ASP2JSP Converter from DiamondEdge

JSPASP

•Manual or•HTML Editors

HTML (based on Open Standards)

HTML (with proprietary FrontPage tags)

Using ToolToMigrate From

17

Demo: Migrated On Demand Insurance Company WebSite

DB2Linux Server

Internet

WebSphere/J2EELinux Server

Web Browser

18

Migrate Visual Basic Client Server Applications to Java Based Applications

MozillaNetscapeOpen OfficeLinux

JavaLinux

Samba BasedFile/Print

Server

XAD, Kerberos, OpenLDAPDNS

DHCP

Domino

Web Application

(HTTP, WebSphere)

Internet ExplorerOfficeOutlook

Visual Basic Client

File ServerPrint Server

Domain ControllerActive Directory

DNSDHCP

Exchange 2000

Web Application

(IIS / ASP / COM)

SQL Server DB2SQL Server

19

Diamond Edge VB Converter is a Visual Basic add-in that converts Visual Basic applications to Java codeQuick and Easy to use

Conversion time of less than a second for 1000 lines of codeNo problem with 80% of converted code

Converted code can be imported to Rational Application Developerfor further debugging and enhancementIssues

Inserts calls into proprietary libraryCode needs to be reverse engineered for debugging purposesCode is not 100% reliable in certain casesEvery component project has to be individually convertedDoes not deal well with transactions and database access

Database table and column names have to verified anyway after migrating the database.

Use Diamond Edge Tools and Rational Application Developer to Convert Visual Basic Applications

20

Demo: Conversion of Visual Basic Application

VisualBasicFiles

JavaFiles

LinuxWindows

21

On Demand Insurance Company based on WebSphere J2EE on Linux

DB2Linux Server

Internet

WebSphere/J2EELinux Server

Web Browser

Java Client

22

Summary of Migration Work

IISIE

IISIE

ASP

IISIE

ASP SQL Server

IISIE

ASP SQL Server

IISIE

ASP SQL Server

IIS SQL Server

IE

ASP COM

IIS SQL Server

IE

ASP COM

IIS SQL ServerIE

ASP COM

MS DTC

VB Converter from Diamond Edge,

Rational App Developer

ASP2JSP from Diamond Edge (ASP only), Rational App

Developer

ASP2JSP from Diamond Edge (ASP only), Rational App

Developer

ASP2JSP from Diamond Edge (ASP and COM), Rational

App Developer

JASP from NetCoole, Rational App Developer

JASP from NetCoole, Rational App Developer

JASP from NetCoole, Rational App Developer

JASP from NetCoole, Rational App Developer

Rational App Developer (HTTP import, fix

broken links)

Application Migration Tool

DB2 MTK

DB2 MTK

DB2 MTK

DB2 MTK

DB2 MTK

DB2 MTK

DB2 MTK

Database Migration

Tool

2745VB ClientUse ADO to do Update Database

9

11545Transactional /MTS (VC++)8

11145COM Components (VC++)7

4845COM Components (VB)6

5845DHTML5

4845ADO + Stored Procedures4

4330ADO3

24ASP2

21Static HTML1

Application Migration

Time (mins)

DatabaseMigration

Time (mins)

Application Scenarios

23

Benefit of Migration Tools

130

170

186

140

138

128

103

28

21

Manual Migration Time (min)

72

160

156

93

103

93

73

24

21

Migration time with

Tools (min)

9

8

7

6

5

4

3

2

1

6%Transactional/MTS (VC++)

26%DHTML

29%ADO

44%VB ClientUse ADO to update Database

16%COM Components (VC++)

34%COM Components (VB)

27%ADO + Stored Procedures

15%ASP

0Static HTML

% DiffApplication Scenarios

130

170

186

140

138

128

103

28

21

Manual Migration Time (min)

72

160

156

93

103

93

73

24

21

Migration time with

Tools (min)

9

8

7

6

5

4

3

2

1

6%Transactional/MTS (VC++)

26%DHTML

29%ADO

44%VB ClientUse ADO to update Database

16%COM Components (VC++)

34%COM Components (VB)

27%ADO + Stored Procedures

15%ASP

0Static HTML

% DiffApplication Scenarios

24

Some Real World Statistics on Data Base Migration from SQL Server to DB2

235-------24---85E

330026549428816770D

57001000500287---1800C

11006152052729502B

20001301327---46689A

Estimated Hours

IndexesTablesClient Application Modules

TriggersStored Procedures

Customer

235-------24---85E

330026549428816770D

57001000500287---1800C

11006152052729502B

20001301327---46689A

Estimated Hours

IndexesTablesClient Application Modules

TriggersStored Procedures

Customer

25

What if You Cannot Migrate Immediately?

Sometimes immediate Migration may not be possible. This may be due to

Lack of budgetTime ConstraintsUnavailability of skilled people who understand the application

Fortunately it is still possible to reap the benefits of Linux using Simulation and Bridging Techniques

Adopt Linux using these techniques first.Save on Microsoft License fees

Migrate later when resources are available.

26

Windows Environment Simulation Tools

Simulation of Windows EnvironmentCompile C++ code and run it on Linux

Visual MainWin for Unix and LinuxCompile Visual C++ code with native Unix/Linux compiler Bind with Visual MainWin library that Simulates Windows environmentExecute on Unix/Linux

Simulation of MS Libraries

Linux

C++Application

27

Demo: Visual MainWin for Linux

Visual C++ Application Visual Studio

Visual MainWinPlugin

Linux BasedBuild Server

NativeLinux Binary

28

Simulation of Microsoft FrameworksSimulation of Windows frameworks

Java based implementation of Microsoft frameworksRun Microsoft code in Java environment

Stryon iASPJava-based implementation of ASP frameworkRuns ASPs in J2EE environmentX86 onlyCannot deal with ActiveX, DOM/DCOM

Stryon iNETJava-based implementation of ASP.NET Framework

WindowsApplication

SimulatedMicrosoftFramwork

WebSphere J2EE Environment

29

Bridging

A “bridge” allows Java components to interact with .NET/COM components as if they are Java components and vice versaMaintain the existing applications under Microsoft frameworks Build future applications on J2EE platformsWeb Services could be used as bridges also

Create Web Service wrappers for existing applicationsMessage Queues could also be used in the same way

WebSphere Windows

J2EEApplication

Bridge .NET COMObjects

30

Bridging (Integration) ToolsIBM Development tool for Java-COM Bridge

Make calls in both directionsAvailable on alphaworks www.alphaworks.ibm.com

IBM Interface Tool for JavaOne way calls, Java to Microsoft ActiveX controlAvailable on alphaworks www.alphaworks.ibm.com

Stryon iHUBCollection of bridges that support:

Java to/from .NETJava to/from DLLs, COM/DCOM. ActiveXPlug-ins for IDEs

Stryon R-JAX (Remote Java ActiveX Server)Allows Java programs to link to ActiveX, DLL, and COM running remotely or locally

Intrinsyc J-IntegraSupports 2-way communication between Java components and COM/DCOM

Intrynsic Ja.NETAllows 2-way access between Java client and .NET Remoting objects

JNBridge JNBridgeProAllows .NET Remoting clients to access Java objects

How About Developing Some New

Applications?