using postgresql as an application modernization and...
TRANSCRIPT
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
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
Legacy Metamorphosis
3www.xformix.com
PGConf
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.
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
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
7
Pgconf
8
Pgconf
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
Modernizing and Future Proofing Applications
10
PGConf - November 15, 2016
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
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
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
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
15
Pgconf
16
Pgconf
17
Pgconf
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
It’s All About that BASE
19
Pgconf
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.
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
Stage 01: No Change
22
Pgconf
• Main Disadvantage – Business needs are not being
met using older technologies
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
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
Database Migration Runtime
25
Pgconf
Stage 03:
Application and Database Migration
• Like-for-like migration
• Limited user retraining
• Same functionality as before
• Easier to extend the application
26
Pgconf
03 Application and Database Migration
27
Pgconf
• Application migration steps
28
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
04 Database Modernization
30
Pgconf
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)
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
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
Application and Database Modernization Tools
34
PGConf
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/
36
• Development kit for Axelor
JAVA Framework
• Open Source – AGPL
• PostgreSQL based
• Database centric
development
• Standards based
Axelor Development Kit
Goal: Migration and Modernization
Consolidated Model
37
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
39
Pgconf
05 Application and Database Modernization:
ModernizationInPlace
40
Pgconf
Modernized Application
41
42
43
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
For More Information
• Charles Finley:
• Homepage: http://modernization.xformix.com
• eMail: [email protected]
• Phone: +1 (619) 795-0720
45
Pgconf
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
Thank You
47
Pgconf
Questions?
Extra Slides
48
Pgconf
Axelor
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
Axelor Applications Have a Modern
Look and Feel
The Axelor Framework
51
Axelor Development Kit
• Development kit for Axelor JAVA Framework
• Open Source - AGPL
• PostgreSQL based
• Database centric development
• Standards based
52
53
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
Substantially Modernized to Web Browser
55
Mobile Phone Tablet
56