using postgresql as an application modernization and...

56
Using PostgreSQL as an Application Modernization and Consolidation Cornerstone: Legacy Metamorphosis Charles Finley, Transformix Computer Corporation www.xformix.com 1 Migration and Developer Productivity Solutions PGConf – November 15, 2016

Upload: trinhque

Post on 11-May-2018

266 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Using PostgreSQL as an Application

Modernization and Consolidation Cornerstone:Legacy Metamorphosis

Charles Finley, Transformix Computer

Corporation

www.xformix.com

1

Migration and Developer Productivity Solutions

PGConf – November 15, 2016

Page 2: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

2

Speaker: Charles Finley

• Specialization: Legacy Application Migration and Modernization

• Replatforming

• Database migrations

• Language conversions

• System Integration

• Web and Mobile Development

• Oracle, IBM DB2, MSSQL, Postrgresql, MySQL

• OS: Linux, UNIX and Windows

• Minimally Invasive

• 40+ years in IT

www.xformix.com

PGConf

Page 3: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Legacy Metamorphosis

3www.xformix.com

PGConf

Page 4: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Migration Versus Modernization

• Modernization

Legacy modernization, or software modernization, refers to the conversion, rewriting or porting of a legacy system to a modern computer programming language, software libraries, protocols, or hardware platform. This involves more substantial changes.

4www.xformix.com

PGConf

• Migration

Legacy application migration is the process of moving an application program from one environment to another with minimal changes to the application.

Page 5: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Migrate (Lift and Shift) and Modernization

What We Provide

5

PGConf - November 15, 2016

• Migration - Lift and Shift

• Database

• Application

• Related Artifacts

• Modernization

• Database

• Platform change (Linux, Unix, Windows)

• Automated Tools

• Like-for-like

• Restful API

• Skills to integrate older systems with new

Page 6: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Why This Topic?

6

Pgconf

• Our main job at Transformix is the extend the life of

legacy applications – Lift and Shift and

Modernization Using Software Tools

• We have been in search of a toolkit that can help

simplify the job of modernizing legacy applications

that can also be used to develop new applications

• This talk explains our motives, how this can be

accomplished and where we are in our quest

Page 7: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

7

Pgconf

Page 8: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

8

Pgconf

Page 9: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

We Need to Deal

With The Clutter

3GL mainframe programming languages

• Ada

• Algol

• C, C++

• COBOL

• FORTRAN

• Pascal

• PL/I

• RPG

• Natural

• Telon9

PGConf - November 15, 2016

4GL mainframe

programming• ADS/Online (ADSO)

• Application Master

• APS

• CA Ideal

• COOL:Gen

• CSP

• DYL-260/280

• Easytrieve Plus

• FOCUS

• Mantis

Databases

• IMS

• Rdb

• ISAM

• TurboIMAGE

Desktop Database

• MicrosoftAccess

• ParaDox

• FileMakerPro

• ExBase and derivatives such as dBase, FoxPro and ClipperLanguage

• OpenOfficeBase

• SuperBase

Page 10: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Modernizing and Future Proofing Applications

10

PGConf - November 15, 2016

Page 11: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Feature Mismatch

11

PGConf - November 15, 2016

• Legacy Applications – We have

• Older Development Tools

• Stove Pipe Monolithic Applications

• Desktop Information Islands

• Web and Mobile Access

• Cloud

• Application Integration

• Database Sophistication

• User Interface

• Security, Integrity, Restart, Recovery

• Modern Applications – We want

• Modern RAD Tools

• RDBMS, REST, etc.

• Move to RDBMS and Axelor

• Axelor

• Axelor

• Axelor

• PostgreSQL

• Axelor

• PostgreSQL

Page 12: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Bridge the Feature Gap

12

PGConf - November 15, 2016

• Legacy Applications

• Older Development Tools

• Stove Pipe Monolithic Applications

• Desktop Information Islands

• Web and Mobile Access

• Cloud

• Application Integration

• Database Sophistication

• User Interface

• Security, Integrity, Restart, Recovery

• Modern Applications

• Modern RAD Tools

• RDBMS, REST, etc.

• Move to RDBMS and Axelor

• Axelor

• Axelor

• Axelor

• PostgreSQL

• Axelor

• PostgreSQL

Page 13: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Three Things To Accomplish

• Replace Some Databases

• Replace Some Developer Tools and Languages with a

more modern one

• Future Proof Some Applications

13

PGConf - November 15, 2016

Page 14: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Application

Metamorphosis

Modernization

ToolsPostgreSQL

Axelor Migration

Tools

Modernization

Improve functionality

of legacy application

data sources and add

new modern features

to the application

Migration

Move the database

and/or the application

to a new environment

keeping the same logic

and look and feel

Common RDBMS

Used for both legacy

and new applications.

Common

Development

Framework

Used for both legacy

and new applications

Four Main Solution Components

To Bridge the Gap

Page 15: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

15

Pgconf

Page 16: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

16

Pgconf

Page 17: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

17

Pgconf

Page 18: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

A Strategy for Dealing with Easing

the Burden Existing Monolithic Applications

• Database-centric – PostgreSQL

• Features a progressive series of solutions

• Meant to increase developer productivity

• Meant to ease integration and data sharing

• Meant to use for maintenance and enhancement of

existing applications and facilitate the development

of new ones with a common set of tools

18

Pgconf

Page 19: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

It’s All About that BASE

19

Pgconf

Page 20: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Transition from Today to the Future

20

Pgconf

1. No change

2. Database Only

Migration

3. Application and

Database Migration

4. Database Modernization

5. Application and

Database Modernization

• We are interested in seeing how PostgreSQL features can play a significant role in enhancing the value of each form of migration or modernization. The PGSQL contribution is progressive as we move up the diagram.

Page 21: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

How PostgreSQL Can

Help Applications Evolve

01Leave Alone

04

Modernize

Database

This helps with

both legacy

application and

new applications

03Migrate

Application

and

DatabaseApplication can

be extended and

supplemented

with native

features

05Modernize

Application

and

Database

Application can

be extended and

organization can

be use existing

modules that are

available in

Axelor.

Application

becomes cloud

ready.

02Migrate

Database• Data becomes

available to

native

applications.

Continue with

disadvantages

Move schema

and data to

PostgreSQL

Move

Application to

Modern

Platform

Modernize the

database by

adding

advanced

database

features to the

migrated

database.

Modernize the

Application

with Axelor

JAVA

Framework

Page 22: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Stage 01: No Change

22

Pgconf

• Main Disadvantage – Business needs are not being

met using older technologies

Page 23: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Stage 02:

Database Only Migration

• Existing applications continue to work on the current

platform

• Applications can be extended more easily when SQL

is used

• Other applications can access the data in the database

23

Pgconf

Page 24: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Program Centric Data Centric

Most Legacy Applications Most HLL / OO Applications

• Traditional RLA I/O based

• Slows Down as # of rows

increase

• Less Efficient

• Less Flexible

• Program(ers) Determine

Access Method of Data

• Single Layer Architecture

• Row Based Data Access

• SQL I/O Based

• Speeds up as # of rows increase

• Very Efficient

• Very Flexible to Changing

Business

• Database Determines Access

Method of Data

• Multi Layer Architecture

• Set Based Data Access

Why an RDBMS:

Program Centric vs Data Centric

Page 25: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Database Migration Runtime

25

Pgconf

Page 26: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Stage 03:

Application and Database Migration

• Like-for-like migration

• Limited user retraining

• Same functionality as before

• Easier to extend the application

26

Pgconf

Page 27: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

03 Application and Database Migration

27

Pgconf

Page 28: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

• Application migration steps

28

Page 29: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Stage 04:

Database Modernization

• Legacy application does not need to be affected

• Legacy, newer applications and outside applications can benefit from new features

• Tools

• Database Migration Tools

• Modernization tools and Workbench

29

Pgconf

Page 30: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

04 Database Modernization

30

Pgconf

Page 31: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Features that Can Improve Developer Productivity

31

Pgconf

• Indexes (foreign keys, composite)

• Full text searches

• Views

• Triggers

• Assertions

• Cursors

• UDFs

• Stored Procedures

• Object Relational

Mapping (ORM)

• NoSQL (HStore and

JSONB)

Page 32: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

04 Database Modernization

Features Gained

• Text search capability

• Reduced work involved

in programming

• Web Services

• NoSQL capability

• Reduce programming

effort as much as 80%

32

Pgconf

Page 33: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Stage 05:

Application and Database Modernization

• The database may have already been modernized in the previous phase in preparation for this step.

• Axelor is used to create new application components sometimes incorporating existing code

• The migrated application is integrated with standard Axelor applications to form a composite application

• Also, this is a time when other application features can be added to the application.

33

Pgconf

Page 34: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Application and Database Modernization Tools

34

PGConf

Page 35: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

What We Found with Axelor

35

PGConf

• √ Rapid Application Development (RAD) tool for the PostgreSQL Database

• √ Browser based for Development, Deployment & Runtime

• √ Mobile development capability

• √ Declaratively build professional Web 2.0 applications that are fast and secure

• √ Leverages full PostgreSQL database capabilities and existing SQL

• Capable of Using Existing Database – MISSING, we added this

• Forms Based Development Tools - MISSING, we added this

• √ Off the shelf applications that we can use to enhance our applications

• http://www.axelor.com/

Page 36: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

36

• Development kit for Axelor

JAVA Framework

• Open Source – AGPL

• PostgreSQL based

• Database centric

development

• Standards based

Axelor Development Kit

Page 37: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Goal: Migration and Modernization

Consolidated Model

37

Page 38: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Checklist

38

PGConf - November 15, 2016

Component Status Solution

Rapid application development

stack with common artifacts

√ Transformix Tools and

Axelor

Web application server √ Apache Tomcat

Database management system √ PostgreSQL

Framework √ Axelor

Application specific tools and

components

√ Transformix Tools and

The Application

Page 39: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

39

Pgconf

Page 40: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

05 Application and Database Modernization:

ModernizationInPlace

40

Pgconf

Page 41: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Modernized Application

41

Page 42: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

42

Page 43: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

43

Page 44: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Summary and Conclusions

01Leave Alone

04

Modernize

Database

This helps with

both legacy

application and

new applications

03Migrate

Application

and

DatabaseApplication can

be extended and

supplemented

with native

features

05Modernize

Application

and

Database

Application can

be extended and

organization can

be use existing

modules that are

available in

Axelor.

Application

becomes cloud

ready.

02Migrate

Database• Data becomes

available to

native

applications.

Continue with

disadvantages

Move schema

and data to

PostgreSQL

Move

Application to

Modern

Platform

Modernize the

database by

adding

advanced

database

features to the

migrated

database.

Modernize the

Application

with Axelor

JAVA

Framework

Page 45: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

For More Information

• Charles Finley:

• Homepage: http://modernization.xformix.com

• eMail: [email protected]

• Phone: +1 (619) 795-0720

45

Pgconf

Page 46: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Demos for

Developing with Postgresql and Axelor

• Video Screen Solution for Time Entry

http://demo.axelor.com/abs-en/login.jsp

• Demo Database Time Entry https://1drv.ms/v/s!AvErnN6p3ZGDhz9t6Ndu93v13Ju2

• Demo Database Access https://1drv.ms/v/s!AvErnN6p3ZGDhz4uNRBDrhmduWIG

• Video Axelor

https://www.youtube.com/watch?v=6MShqGydkp8

• Video 2SQL http://www.cu2globa.lcom/videos

• Video Open Legacy

https://www.youtube.com/watch?v=o_oFVwqW17A 46

Pgconf

Page 47: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Thank You

47

Pgconf

Questions?

Page 48: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Extra Slides

48

Pgconf

Axelor

Page 49: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Axelor

• The Axelor platform is a rapid development framework for building business applications based on Java technology.

• It is easy to learn, customizable and saves critical time for complex applications.

• The application code is object-oriented, allowing you to use the standard Java APIs.

• The Axelor platform uses an approach to model-driven development, where the heart of your application are Java classes that model your business code.

• This means that you can stay productive while maintaining a high level of encapsulation.

49

Page 50: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Axelor Applications Have a Modern

Look and Feel

Page 51: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

The Axelor Framework

51

Page 52: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Axelor Development Kit

• Development kit for Axelor JAVA Framework

• Open Source - AGPL

• PostgreSQL based

• Database centric development

• Standards based

52

Page 53: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

53

Page 54: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Development Tools for Missing

Features

• Capable of Using Existing Database

• We enhanced Axelor

• We added a code generator

• Forms Based Development Tools

• We created an editor/workbench for Axelor forms

• Eclipse plugin

54

Page 55: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Substantially Modernized to Web Browser

55

Page 56: Using PostgreSQL as an Application Modernization and ...modernization.xformix.com/wp-content/uploads/2016/11/PGCONF_2016... · Using PostgreSQL as an Application Modernization and

Mobile Phone Tablet

56