Convert Legacy Applications into Future-Proof Enterprise Applications with the CUBA-Platform

Frameworks and Meta Programming With PostgreSQL – Part 1

ModernizationInPlace Jun 27, 2018 Comments Off on Frameworks and Meta Programming With PostgreSQL – Part 1

 

By Charles Finley, Transformix Computer Corporation

Abstract

The San Diego PostgreSQL Meet up Group is planning to host a series of discussions and hands demonstrations and workshops focused on “Frameworks and Meta Programming with PostgreSQL”. This document is the first article in a series intended to start discussion on the topic. We hope to bring together a number of PostgreSQL users with a goal of identifying key success factors for selecting software development frameworks for use with PostgreSQL.

Software Frameworks

There are patterns in software development. This has been recognized since the beginning. Fundamental Algorithms by Donald Knuth which was first published in the 1960’s recognized this. Over the years developers have relied on subroutines, include statements, copybooks, macros and so on to facilitate code reusability. More modern languages such as JAVA use classes and class libraries to facilitate code reusability.

These patterns are most apparent when applications are hosted on the same platform or hardware and software environment. For example, accounting applications written for the IBM mainframe in COBOL that use the same type of file or database system and screens have code that overlaps considerably. That’s why the best developers in those environments tended to use standard modules to access the database and display forms to screens. That is, most software applications have a lot in common with each other and the best developers have learned to take advantage of this.

software framework is a one of the ultimate natural consequences of this observed software commonality. Frameworks speed up development, enhance collaboration, and help keep code organized by allowing developers to assemble applications with common parts. Framework developers extract the common traits and the application’s underlying architecture and bundle them into a reusable template and collection of libraries, a framework allows developers to focus on what makes their project stand out.

Interestingly enough, when a developer uses previous project as a boilerplate instead of starting from scratch, they are using an ad-hoc framework.

Frameworks for Web and Mobile Applications

Today’s application users mostly prefer web and mobile access to applications. This reality makes the use of frameworks even more important. When the requirement is to provide applications mainly with web technologies (JavaScript, HTML, CSS) teams don’t always have the time or the skill set to learn Java, Swift, or Objective-C and build mobile apps in the native official languages for Android or iOS. Web-native mobile application frameworks exist so that developers can build mobile apps with the web languages they already know. Plus, most mobile app frameworks let you build the app once and deploy to both Android and iOS with few code changes.

Classification of Frameworks

https://www.cuba-platform.com/sites/default/files/Frameworks-classification.png

There is not just one type of framework. This article https://dzone.com/articles/classification-of-development-frameworks-for-enter Provides more insight into the range of framework categories that exists.

The article points out that picking the best framework for developing an application (or another framework), means trying to find the best trade-off between the following criteria:

Range of Applicability — what part of the application can be developed using the framework? Do I need a set of frameworks or just one?

Development Speed — how fast will development go?

Manageability and Flexibility — what would be the architectural, performance, and other limitations?

As you might imagine selecting the right framework is situational. It depends on what you need to do the job in front of you.

PostgreSQL, Web and Mobile Development

Yet another complication in choosing a framework is the database. Should you use SQL or NOSQL? In a series of articles we see that there are many good reasons to choose PostgreSQL:

Why I Choose PostgreSQL Over MySQL/MariaDB – Dice Insights

Why Postgres – Craig Kerstiens / Why PostgreSQL Part 2

A Comparison of Advanced, Modern Cloud Databases

A few more reasons include:

  • Most leading frameworks work with PostgreSQL.
  • It can be used to evaluate the difference between features such as SQL versus NOSQL.
  • Moreover, PostgreSQL is a multi-model data platform capable of integrating external data stores, and unifying disparate data sources within a single database, can solve many of the challenges facing IT managers with complex operational environments.

Choosing the “Right Framework”

The problems are that, with so many cross-platform solutions and frameworks available, the menu is quite confusing and different tools deal with various combinations of layers in the application.

Perhaps a better question to ask is how you choose the “right framework” to fit your needs with respect to satisfying a specific need you have a the time.

Reasons to Use a JAVA Framework

Let’s start by looking at how using a full stack JAVA framework can help you in your application development.

1. Rapid Development

In today’s world of application development, rapid prototyping, and getting your application working fast as possible, development speed can be what makes or breaks your business or saves your job. Using a JAVA framework is one way to answer this requirement.

A well-designed JAVA framework selects the best implementations to common problems from the open-source community and, building on top of them, provides you with an application architecture (in most cases, based on the Model-View-Controller pattern) to guide your development.

This way, instead of spending time planning your application’s architecture and evaluating the various libraries available, you get to start from a fully functional, if bare bones, template and get right to building the features specific to your application.

If you already have a database with the right framework things are even better. For example, with the CUBA-Platform you can generate a fully functional SCRUD database application after importing your existing database.

2. A Framework Makes Your Application More Secure

While speeding up your development, a framework can also make you more secure: You are working fast, but that doesn’t happen by hacking your way using quick and dirty solutions but y using proven best practices and ready-made components.

The solutions included in a modern JAVA framework are continuously tested and peer reviewed and validated by multiple developers using the framework. As the frameworks are open source, security issues and other problems that you might overlook in your proprietary code get quickly noticed and fixed.

A decent full stack framework provides substantial security features including user login and authentication, user roles, including screen permissions, entity operation permissions ( an ability to perform operations with an entity: read, create, update, delete), and UI permissions to control access to screen elements. These features are built-in as part of the framework.

3. Easier Maintenance

By providing a sound structure for your application and nudging you towards software development best practices and patterns, a JAVA framework guides you towards writing code that is loosely coupled and repeats itself as little as possible. In other words, it’s easy to read, test, maintain, and develop further.

Virtually all popular JAVA frameworks today are object oriented and developed with automated testing and even test-driven development in mind.

You will still have to do your part. But compared to starting from scratch, a framework and its documentation reminding you of the concepts and nudging you towards using them will surely help.

Another way in which using a framework makes maintaining your application easier is through its shared components. As the framework libraries and helpers are developed independently of your application, you get to offload a big part of your application’s maintenance to the framework developers.

4. Stronger Teamwork

In a computer industry classic called “The Mythical Man-month” Fred Brooks wrote “Adding manpower to a late software project makes it later.”. One of the key reasons this is true is due to the reality that developers who were producing now have to get other new team members up to speed. The use of a framework helps in this regard. It provides a source of information about key design decisions and complete documentation (let’s face it: especially in the world of rapid development, documentation is often an afterthought), they will find it hard to wrap their heads around your application’s code. A decent framework will be well documented.

Using a JAVA framework will help make it easier for new developers to get started with working on the project. Chances are they are already familiar with the framework and can put all of their attention into understanding the specifics of the application. And even if the framework is new to them, the documentation, online tutorials, and the familiar design patterns will help them get up to speed with minimal effort.

All this while you can keep working on the application rather than teaching the developers your ways of thinking.

5. The Community Is There for You

Moreover, a significant benefit of using a JAVA framework comes from the active communities of developers and users that gather around them.

All major frameworks attract open-source contributors who, in addition to working on the framework itself, develop additional widgets, libraries, and helper components for others to include in their applications. Other contributors write tutorials and books or create videos to explain the ins and outs of how they use the frameworks in real-life projects.

As a part of such a developer community, you will grow as a developer, learning quickly and applying what you learn to your application development.

6. Citizen Developers

According to Gartner “A citizen developer is a user who creates new business applications for consumption by others using development and runtime environments sanctioned by corporate IT. In the past, end-user application development has typically been limited to single-user or workgroup solutions built with tools like Microsoft Excel and Access. However, today, end users can build departmental, enterprise and even public applications using shared services, fourth-generation language (4GL)-style development platforms and cloud computing services.” Many frameworks allow for development by this class of developer.

Conclusion

A modern JAVA framework is a powerful tool in a software developer’s tool chest: it can save you a lot of time and effort and provide peace of mind as you develop your JAVA application. Just remember that this shouldn’t replace learning core JAVA first!

The key in the above conclusion, however, is selecting the right tool for the job. Every project is different, and even a framework that is perfect for one project might not be quite right for the next. Go for simplicity and ask yourself if a full-blown framework is right for the project.

Starting from scratch using vanilla JAVA is rarely the best option, but that too is worth considering when developing a very simple application (such as a website without much interactivity)—and remember that you can always extend it by adding classes of your own choosing.

When selecting a framework, make sure the framework you choose is actively developed and supported and follows sound software engineering practices. This way, you’re future-proofing your application by making sure the underlying framework will not suffer a quiet death.

And finally, even if you decide not to use one, it’s a good idea to get familiar with one or more of the modern JAVA frameworks. Studying them is an excellent way to learn and improve your craft in software development and help you stay on top of the evolving world of JAVA development.

Blog

ModernizationInPlace Jun 26, 2018 Comments Off on Blog

Convert Legacy Applications into Future Proof Applications with the CUBA-Platform

Legacy Applications versus Modern Applications

At the risk of over simplification, I believe that a “modern application” can be illustrated with the help of the image in Figure 1. For the most part, when legacy applications are mentioned one usually thinks of monolithic applications that were written in older programming languages such as COBOL with terminal based user interfaces that usually use data stores such as ISAM, flat files and proprietary database management systems. The left most bottom of the diagram shows this type of application. As the diagram shows, application architectures have evolved into web and mobile user

application_evolution.png

Figure 1  – Modern Application

Interfaces that can be loosely coupled with external applications often based in the cloud. The diagram does not show that applications developed today are most often able to be hosted on virtualized servers and/or in containers. The diagram also does not show that applications developed today are developed with newer programming languages and with a number of different database technologies.

This dichotomy between legacy applications both from a feature and usability point of view and from the point of view of the cost and relative difficulty to host the applications provide increasingly strong motivations for stakeholders to replace or modernize these legacy applications.

What is the CUBA-Platform?

The CUBA-Platform provides a full-stack architecture for building 3 tier applications and includes widely used common features for enterprise apps such as soft deletion, data-aware components, file storage, as well as high level modules: authentication and authorization, audit of data and others. This class is most appropriate for developing ERP-like systems, line of business applications or custom software for the corporate segment.

On the surface, the CUBA-Platform seems to be mainly suited to building custom applications from scratch. However, a closer look reveals a platform that provides the ability to reuse existing databases, auto generate domain models from existing databases, automatically create REST APIs from existing artifacts, standardize front-end by using prebuilt responsive UI templates, turn existing business logics into standard services and integrate any REST based third party services without coding. These features make the CUBA-Platform ideally suited for integration of a full stack JAVA framework with legacy applications.

What are TransformixTools?

TransformixTools for CUBA-Platform are a number of custom engineering components and adapters that link legacy applications to the CUBA Platform among these are database adapters, terminal screen adapters, COBOL services integration components, Eclipse plugins, etc. These tools serve as CUBA-Platform plugins to facilitate the integration of the legacy application to CUBA features.

What is ModernizationInPlace™

For the stakeholders of legacy applications for enterprise customers, ModerinzationInPlace™ is an innovative approach to software development and efficient open source technology that helps developers integrate existing legacy applications with the full stack CUBA-Platform enterprise development framework. This non-invasive approach transforms the application into a multi-model development platform in which existing tools can be used to extend and enhance existing legacy application code while at the same time modern development tools can be used to enhance and extend application functionality. Therefore, ModernizationInPlace™ makes customizations and upgrades to the application functionality relatively painless.

Main characteristics:

  1. ModernizationInPlace™ is a framework for enhancing the application’s business layer (with web service APIs) and database
  2. Tools from Transformix allow the application user interface to be supplemented with browser access which allows combining existing internal applications screens, like Legacy applications (mainframe green screen applications), with external Web services and Web pages with standard Web sites designed without integration interfaces (APIs), XML information and databases.
  3. The CUBA-Platform an open source full stack JAVA framework provides an open source foundation.
  4. Based on a JAVA technology stack, using best practices for designing business application’s database, business layer object model and web API
  5. No hidden magic, the generated server application is a regular REST web services that can be debugged using its source and the popular JAVA IDE’s.

Toward the Multi-model Applications Platform

TransformixCUBAArchitecture.png

Figure 2 – Multi-model Applications Platform

Yes Virginia it is possible to have your cake and eat it too. At least in so far as legacy applications are concerned. By that I mean it is possible to allow for continuing development in the legacy paradigm in parallel with development in newer paradigms. Figure 2 illustrates an environment in which an application that was built for an HP 3000 in COBOL with a proprietary HP TurboIMAGE database management system has been migrated to Linux with a PostgreSQL RDBMS. This is done with only minimal changes to application sources. In this environment the COBOL applications still use the same APIs they used on the HP 3000. For example, database calls are TurboIMAGE calls and screen IO calls are VPLUS calls. However, using the combination of the CUBA-Platform with the TransformixTools enhancements makes it possible to show the terminal based user interface in a web browser and the database can be accessed using SQL. Therefore, at the same time that the legacy programs are used the application can be enhanced in much the same way as a newly developed JAVA based CUBA application is enhanced. Further, the developers who work on the application as a CUBA application do not need to have an HP 3000 knowledge or skills to do their jobs.

Five Steps to ModernizationInPlace™

Figure 3 provides a high level overview of how the Multi-model Applications Platform is implemented. A SQL accessible database is needed in order to take full advantage of the features the CUBA-Platform has to offer. Therefore, the first step is to migrate the application data access to allow for multi-model SQL access. This means that the original application will still be able to access the data using the original APIs while at the same time other applications such as CUBA will be able to use SQL to access that same data. Step two is to allow browser access to the application screens. In this second step also includes the installation of the CUBA-Platform alongside the application. The application takes on the characteristics of a multi-model application once the CUBA-Platform is installed. This means that from then on the application can be extended and enhanced with modern tools by developers with little or no knowledge of the legacy programming environment.

What follows is an expanded version of the 5 steps toward a multi-model applications platform.

Step One – A Multi-model Data Platform

A commonly used “trick” in migrations is to provide a simulated legacy system API on top of a relational database. This allows the existing application to access the data using the same database calls or APIs as always while at the same time providing alternative industry standard interfaces to newer and commercially available off the shelf applications. This is the approach Transformix uses. Here are some examples:

HP 3000 TurboIMAGE or Eloquence Database to RDBMS

TransformixTools provides a TurboIMAGE API that allows applications originally written for the HP 3000 to have the data and schema’s migrated to Oracle, PostgreSQL, MSSQL, IBM DB2 or IBM Informix with few or no changes to the application programs. Other applications can then access the data using standard APIs such as SQL.

MS Access to RDBMS

Microsoft Access lets you easily create databases to store and present your data in forms and reports. When starting, a database may be very simple and trivial, but over time, it may become more important as you add data, features, and even share it with others. It gains a life of its own and the overall design becomes critical.

steps_2018-06-26_7-28-09.jpg

Figure 3 – ModernizationInPlace 5 Steps

One of the most important architectural designs is splitting the database into a front-end and back-end database. This is how Access is designed to let you support multiuser databases and significantly simplify how you enhance the application over time.

Separating your application and data databases enables you to support multiple users and upgrade the application without wiping out their data. Assuming the application doesn’t change that often, the separation also makes it easier to just backup the data database since only that is changing every day.

Splitting a database is a relatively simple concept. You take an existing Access MDB/ACCDB database with its tables, queries, forms, reports, macros, modules, etc. and divide it into two databases:

The “Back-End” database just contains the tables

The “Front-End” database contains the application objects (everything except the tables) and links to the tables in the back-end database

This design is especially useful in multi-user environments where the back-end database is stored on a network and contains the shared data. Each user then has a copy of the front-end database on their desktop pointing to the shared database.

In multi-user environments, the front-end database can also contain tables that are private to the user. These local tables can store the user’s settings, selections, temporary or intermediate tables for processing data or reports, etc.

Once the database is split, using ODBC to access it from MS Access and using MS Access as a frontend allows the backend to be access with the CUBA-Plaform.

Microfocus ISAM to Ctree

FairCom’s No+SQL technology provides flexibility with an ISAM application’s data architecture by allowing data ISAM of any type to be stored within your record structure, without pre-defined schemas. At the same time, it supports industry-standard SQL (relational) interfaces and high-performance NoSQL (non-relational) interfaces to the same data at the same time.

c-treeACE is an ANSI-compliant SQL database with support for everything you expect from an RDBMS including stored procedures, triggers, user-defined functions, ODBC, JDBC, and a wealth of standard interfaces. c-treeACE provides simultaneous access to the same data via NoSQL interfaces for the ultimate in performance.

TransformixTools provides a CUBA-Platform interface to C-tree SQL.

Informix 4GL to Aubit4gl and RDBMS

Aubit 4GL project is a Open Source project to make a free, GNU/GPL, Informix-4GL and x4GL compatible development tools (compiler, tools, libraries), and continue to extend functionality and tools needed to write most efficient, stabile and productive applications in business related, database oriented applications. Aubit 4GL compiler is software that translates x4GL programming language into executable programs, enabling fast and productive creation of database oriented applications utilizing 4GL with embedded SQL and C programming languages, using ODBC and native connections to databases, and GTK+ for GUI, or Ncurses for CUI, and HTML/JavaScript for web browser presentation layers.

Once the database is in RDBMS CUBA-Platform can be used to extend and enhance the application.

Step Two – Browser UI

TransformixTools provides solutions based on the CUBA-Platform and Vaadin that turn legacy application user interfaces into browser based interfaces.

Terminal Emulation

Our terminal emulation solution provides an instant web browser based terminal emulator to key business systems, including UNIX, VMS system, on any device with zero client software installation, all centrally managed. The Transformix solution is based on the CUBA-Platform. Therefore, at this step the CUBA-Platform is installed and made available to the application developers. Example Stansoft Aubit4gl.

VPLUS API Intercept

Another technique we use is the terminal API intercept approach. The best example is our VPDM HP VPlus replacement. We convert the HP VPLUS forms file to JAVA classes and create an xmlrpc-based intercept library that implements a plug-compatible replacement for VPLUS calls.

MS Access Forms

This solution is based on the CUBA-Platform as well. The TransformixTools DBForms solution includes software tools that turn MS Access forms to web pages written in JAVA code and available for viewing through Internet browser. A prerequisite step is to turn MS Access tables and queries into in their turn are converted to RDBMS. For now, this solution is limited to PostgreSQL.

Step Three – Enhanced Browser

A composite application (also known as a “Mashup”) is a Web site component or application displaying mixed content combined from heterogeneous sources. End-users don’t have to know from which underlying sources and applications this aggregated information is coming. In its simplest implementation, adding relatively simple external enhancements to a legacy user interface such as dropdowns or type-ahead search can greatly enhance the user experience with the application. These two features require database access that is separate from the original application and they can be implemented without modifying the original application. Figure 4 shows how what the user sees on their desktop is a further composite of the original application screen and a Google Map which is made available through a REST API and the CUBA-Platform. This too does not require a modification of the original application.

Figure 4 – Composite Application Screen

The use of the CUBA-Platform in Step Two is not only of benefit for creating the browser UI in the first place, it also makes it possible to extend and enhance the application from the user’s point of view without changing the original application.

Step Four – Mobile and Web Services

The CUBA-Platform was introduced to the application environment in Step Two as a vehicle to facilitate enhancing the user interface to the application. Step Three gave us the opportunity to explore how CUBA can help further enhance user interfaces. In Step Four we begin to look at the real power of the platform. It provides a no Code and Low Code Platform that allows you to reshape how you interact with your legacy UNIX, or VMS system as well as your Windows, Linux or MAC system. With legacy terminal based applications as we have seen it gives us tools to help change green screen user experiences into contemporary interfaces that are delivered over the web. This gives you the freedom to adapt and evolve business processes, quickly realizing new efficiencies and gaining instant ROI and tactical advantages that are simply not available elsewhere, what’s more, this can be done by a super user or Citizen Developer.

Web Services

REST APIs are all the rage these days. The use of REST and other HTTP(S) based APIs have become the lingua franca of the world of computing. The CUBA-Platform is built on top of REST APIs and it plays very well with REST APIs provided by others. The use of CUBA as a modernization foundation for legacy systems transforms your host environment into a dynamic component of your business systems interface layer, normally confined to the transaction layer of the enterprise, these new tools will unleash your investment in your host system to freely interact with and feed tertiary business systems, increasing the availability, timeliness and integrity of key business data.

A Bit More About Developing with the CUBA Platform

At its highest level, the CUBA-Platform consists of the Design time CUBA Studio which works in concert with either Intellij IDEA IDE or Eclipse IDE. At runtime, it uses a JAVA application server, usually, Apache Tomcat.

Figure 5 – CUBA High Level Overview

CUBA Studio is a specialized tool for rapid application development that streamlines building applications upon CUBA Platform. With Studio, applications are up and running within minutes. It also accelerates modernizing legacy applications by scaffolding the data model and CRUD UI on top of an existing database.

Studio is designed to be used in parallel with a Java IDE (Figure 6) , so developers do not have to abandon their beloved working environments. The focal point of the development process is the studio. Projects are open in Studio and most of the configuration and enhancement is managed with Studio in conjunction with the IDE. Moreover, testing and debugging are managed through Studio as well.

https://www.javacodegeeks.com/wp-content/uploads/2016/06/image-1.png

Figure 6 – Studio with IDE

Applications developed using the CUBA Platform occupy three tiers as shown in Figure 7, they are, the database tier, the middle tier and the client tier. These tiers are connected using REST and HTTP APIs.

Image result for CUBA PLATFORM IMAGES

Figure 7 – CUBA High Level Application Architecture

Using this architecture, the same backend can be used for web, desktop, mobile and REST API applications.

Step Five – Loosely Coupled Web Services

One of the most important ideas in the world of software engineering is the concept of loose coupling. In a loosely coupled design, components are independent, and changes in one will not affect the operation of others. This approach offers optimal flexibility and reusability when components are added, replaced, or modified. Components that can operate independently and have a well-defined communication channel are loosely coupled.

The architecture of the CUBA-Platform is built to support this loose coupling of components. Therefore, when legacy applications are integrated with the CUBA-Platform it allows their features and components to be used with the same flexibility as more recently developed application components.

Summary and Conclusions

ModernizationInPlace™ is the Transformix Computer Corporation approach for converting legacy applications into future-proof enterprise applications with the CUBA-Platform. This approach helps organizations create a multi-model applications platform that allows legacy applications and application extensions written in the CUBA-Platform provided full stack JAVA framework to work side by side. Using this approach the sought after benefits of application modernization are achieved quickly and at low risk.

ModernizationInPlace™ Approach Overview

General Nov 08, 2013 Comments Off on ModernizationInPlace™ Approach Overview

110613_1950_LegacyModer1.png

Modernizing and/or Migrating legacy applications to Cloud Architecture Saves Time and Money

The same technologies that make the Cloud work also represent best practices for a modern IT environment. These components typically consist of a front end platform (fat client, thin client, mobile device), back end platforms (servers, storage),  and a network. Combined, these components make up cloud computing architecture. We believe including legacy applications in this cloud architecture through modernization is the best course.

Transformix focuses on modernizing Legacy applications so that they are cloud architecture compatible through the following steps:

   The Transformix Approach

A recent McKinsey Quarterly survey of global executives on the impact of participatory Web 2.0 technologies (such as social networks, wikis, and microblogs) on management and performance. The survey found that deploying these technologies to create networked organizations that foster innovative collaboration among employees, customers, and business partners is highly correlated with market share gains.

Also, several sources including JD Power and Forrester report that a utility with 1.5 million customers can save $1,387,500/yr by implementing customer self service using mobile and web applications. The savings are much more dramatic with 3 million customers the utility can save $2,775,000/yr. Therefore, even if it cost the utility $1,387,500 to modernize their existing application which is unlikely, the ROI is less than one year!

What we hear most often, in the context of cloud, typically has nothing to do with Legacy applications. The promised benefits from cloud hosting are mostly focused on applications other than Legacy. The most important reasons for this are that typically Legacy applications do not run on platforms that are hosted in the cloud and their architecture is usually not suited to the kind of integration needed for cloud-based usage.

Also at issue are newer technologies such as mobile and web applications in the organization. Mobile devices, web applications and social media use, necessary by organizations with Legacy applications, present additional challenges. Similar integration issues make the use of these technologies with Legacy applications more difficult than with newer application types.

Legacy staff skills can also be at odds with the use of technologies normally associated with cloud and modern applications. Maintaining these skills is becoming increasing difficult due to the aging of those with the requisite skills and the lack of new developers who are willing to take their place.

Cloud technologies (architecture components), those hardware and software components that are used for networking and interoperability, are not normally associated with legacy applications. However, when one looks at the advancements that have been made in development tools and networking one can see that by modernizing legacy applications in a strategic way, it can help simplify some of the complexity in today’s modern IT environment and can make it so that legacy applications can gain compatibility with newer applications. More specifically, it can mean that Legacy applications can be adapted in a way that makes them suitable for integration with newer and cloud-based applications.

  Legacy applications can be made to play well with others through modernization.

Transformix specializes on helping originations with legacy applications position those applications on equal footing with newer applications by modernizing them to be Cloud compatible.

Transformix Legacy Migration

General Nov 08, 2013 Comments Off on Transformix Legacy Migration

Development-Skills

Migration retains the look and feel and program runtime behavior of the application

Software migration (re-hosting) is the process of moving from one operating environment to another.  In its purest form, software migration targets functional equivalence.  That is, although the operating system, the database, the file system, utilities and third-party tools might have been replaced, the application continues to behave as it did in the source environment.  This is sometimes referred to as a like-for-like migration.

Transformix Migration Steps are:

  • Assessment
  • Proof of Concept
  • Planning
  • Engineering
  • Migration
  • Testing
  • Validation
  • Deployment

Read more »

Legacy Modernization to Cloud Architecture

General Nov 08, 2013 Comments Off on Legacy Modernization to Cloud Architecture

responsive

Modernization does not need to require substantial changes to the application.

With TransformixTools and the CUBA-Platform migrated applications can co-exists with modernized components. This allows for modernization with minimal disruption of business operations.

Modernization might include:

  • User Interface Upgrades
    • Mobile
    • Web
    • Rich Clients
  • Web Services Integraion
  • Data source Upgrade -RDBMS
  • Social Media Integration
  • Programming Language Conversion
  • Utility and 3rd Party Products Replacement
  • Integration and Networking
    • Web Services
    • RSS feeds
    • SSH

 

  What needs to be modernized?

It is not just legacy application artifacts (code, data, and documentation) that are candidates for modernization. There is an opportunity to modernize developers, development tools and infrastructure.

The most important message in this whitepaper is that by consolidating the use of resources in IT, it is possible to save both time and money. Our quest starts with a vision of what IT should be like after modernization.

 

  IT Infrastructure

Changing an infrastructure to one that supports cloud computing architecture has far reaching implications for modernizing developers and development tools. The most common platforms for cloud hosting are Linux and Windows. With these environments come plethora of software, both commercial and open source, that can lead to an advanced set of development tools.

Once the infrastructure changes, or is supplemented by cloud compatible platforms, as is illustrated in Figure 4, options for improvement in other areas change as well. The networked – cloud-like architecture creates is part of what makes it possible to change such things as web and mobile enabling of legacy applications as well as how development for those applications is done.

110613_1950_LegacyModer1.pngFigure 4 – A Changed IT Infrastructure – Cloud Architecture that includes Legacy Applications

 

  Applications and Application Development

IBM uses the term Enterprise Modernization to offer a set of tools and services that provide “A simple, robust, unified approach to end-to-end construction of application and services that shields developers from intricacies of runtimes and middleware”.

The IBM solution approach has the following features:

  • A common development language that they call Enterprise Generation Language (EGL).
  • Legacy development
  • New development
  • Web, mobile and web services development
  • The ability to consume outside web services
  • A common toolset that is shared for all types of development
  • A common strategy and toolset to test and deploy applications to all environments.

     

transformix-sayings-(1)

  Benefits of Legacy Modernization Solution

When one looks at the advancements that have been made in development tools and networking, one can see that by modernizing Legacy applications in a strategic way, it can help simplify some of the complexity in today’s modern IT environment. This also enables Legacy applications for compatibility with newer applications.

More specifically, the modernization approach means that Legacy applications are adaptable for integration with newer and cloud-based applications. At the same time these same applications can be made more suitable for mobile, web and social media integration as well. Moreover, there is an opportunity to retool the application so that more uniformity is achieved when developing Legacy and new development staffs. Legacy and newer developers can also work as teams and share skill sets.

Some of the benefits of modernizing Legacy applications in a strategic way are:

Reduced cost:  Lowers high maintenance cost of existing Legacy platforms and development tools, resulting in substantial savings in IT budgets.

Lower risks:  Reuse of business rules and data is less risky than alternatives.

Enhanced flexibility:  Creates a flexible IT environment with new architectural paradigms such as web services; aligns IT systems to dynamic business needs.

Modern development tools:  Legacy and new developers can use the same or
similar tools, enabling both to develop Legacy applications.

Shorter development times:  Modernizes development tools and retrains developers which lead to shorter development times.

Minimized disruption:  Reduces the risk when modernizing Legacy platforms by combining two decades of development experience with contemporary platforms, a proven modernization framework and rich domain knowledge. 

Convert Legacy Applications into Future-Proof Enterprise Applications with the CUBA-Platform

The Transformix approach for migration features the full stack JAVA CUBA-Platform.  This allows the original migrated application with minimal changes to co-exists and cooperate with modern features and components.  Please see the article at  by following this link for more information http://modernization.xformix.com/2018/06/26/blog-2/

 

Development Staff Skills Modernization and Consolidation

General Nov 08, 2013 Comments Off on Development Staff Skills Modernization and Consolidation

Legacy-migration

Modernizing Legacy applications can be done in such a way so as to modernize not just the code and data but the developers and their tools as well.

Typical solution approaches have the following features:

  • Common development languages
    • IBM EGL
    • JAVA
    • Javascript
  • Legacy development
  • New development
  • Modern UI Development (Web, Mobile, Rich Client)
  • web services development
  • The ability to consume outside web services
  • A common toolset that is shared for all types of development
  • A common strategy and toolset to test and deploy applications to all environments.

  Applications and Application Development

IBM uses the term Enterprise Modernization to offer a set of tools and services that provide “A simple, robust, unified approach to end-to-end construction of application and services that shields developers from intricacies of runtimes and middleware”.

<strong>The IBM solution approach has the following features:</strong>

  • A common development language that they call Enterprise Generation Language (EGL).
  • Legacy development
  • New development
  • Web, mobile and web services development
  • The ability to consume outside web services
  • A common toolset that is shared for all types of development
  • A common strategy and toolset to test and deploy applications to all environments.

    transformix-sayings-(1)

  Benefits of Legacy Modernization Solution

When one looks at the advancements that have been made in development tools and networking, one can see that by modernizing Legacy applications in a strategic way, it can help simplify some of the complexity in today’s modern IT environment. This also enables Legacy applications for compatibility with newer applications.

More specifically, the modernization approach means that Legacy applications are adaptable for integration with newer and cloud-based applications. At the same time these same applications can be made more suitable for mobile, web and social media integration as well. Moreover, there is an opportunity to retool the application so that more uniformity is achieved when developing Legacy and new development staffs. Legacy and newer developers can also work as teams and share skill sets.

Some of the benefits of modernizing Legacy applications in a strategic way are:

Reduced cost: Lowers high maintenance cost of existing Legacy platforms and development tools, resulting in substantial savings in IT budgets.

Lower risks: Reuse of business rules and data is less risky than alternatives.

Enhanced flexibility: Creates a flexible IT environment with new architectural paradigms such as web services; aligns IT systems to dynamic business needs.

Modern development tools: Legacy and new developers can use the same or
similar tools, enabling both to develop Legacy applications.

Shorter development times: Modernizes development tools and retrains developers which lead to shorter development times.

Minimized disruption: 
Reduces the risk when modernizing Legacy platforms by combining two decades of development experience with contemporary platforms, a proven modernization framework and rich domain knowledge.

 

  Modern Application Development Tools

There is no doubt that application development has changed. The web has become a gigantic application server and user interaction is increasingly focused on the web browser and various mobile devices. We feel it is important to highlight a selected few modern development tools that are not usually present in a Legacy development environment.

  Web 2.0

Web 2.0 is a collective term that refers to a series of technological improvements for using web and browser technology. These improvements are based primarily on two major paradigm shifts in the way people use the Web – Thin client computing and User-generated content.

Selected examples of features considered to be part of Web 2.0 are listed below:

Portals – Portals can make use of the Thin Client and User Generated Content technological improvements. In Thin Client computing, data and applications are stored on web servers. A user has access from any computer via a web browser, thus turning the Web into a gigantic application server. Portals also make it possible for users to control what content they get and, in some cases, incorporate user generated content.

Web applications – A broad range of new applications make it possible for users to run programs directly in a web browser.

The ability to develop interactive web applications that access data and services will become increasingly important for most organizations. Tools must be available to help do this.

  Mobile

Smart, hand held device CIOs need to find ways to leverage mobile in a positive way for the enterprise. This includes developing new mobile applications, working with business leaders on new mobile business strategies, and securing enterprise data. Suffice to say, Mobile is such a big trend that it must be a core component of every organization’s IT strategy.

The ability to develop mobile applications is also becoming increasingly important.

  IDE Features and Capabilities

The figures below are used by IBM to describe tools used to develop in EGL, the key development language in their Enterprise Modernization Solution. Below are just a few of the many great features of modern development tools.

Source Editing

A fully integrated source code editor provides syntax highlighting, content assist, code formatting, quick fix, import organization, folding, and more to make writing code fast and simple.

Visual Editing


A true WYSIWYG visual editor for visual editing and previewing web UIs. The Design tab contains an embedded browser that supports the visual construction of UIs by dragging and dropping widgets from the Palette, moving and deleting widgets and more. Because the Design tab is an actual browser, what you see in the Design screen is what you get. The Preview tab provides a live, running version of the UI.

Rich Widget Library


Included out of the box is a variety of UI widgets, including standard HTML widgets. And with the popular, open source Dojo toolkit built in, you have the ability to create rich, compelling UIs.

Debugging


Using the integrated debug tools, developers can fully debug applications (end to end) by setting breakpoints in code (regardless of whether that code is targeted for Java, JavaScript, or both) and running the application from the IDE. Developers can step through the code, view variable values, and more.

IDE Test Server

With an integrated IDE Test Server, applications can be fully tested and debugged from within the IDE without configuring or deploying to a conventional server.

Database Access


These products support accessing SQL relational databases, such as MySQL and Derby, from tools-generated Java services and libraries.

Web Services


With support for consuming services that return XML or JSON, developers can create new applications and services that utilize existing services.

Batch Programs


In the IBM solution, EGL supports creation of batch-style Java programs that can be run from command line, offering the ability to perform post-processing on a database, report generation, and more.

  Web Service and Integration

Most people who have a smart phone or a tablet use web services. Google maps are a good example. There is an increasing need for what used to be ordinary internal applications to “consume” external web services and incorporate them in what used to be internal applications.

The Need for a Common Development Toolkit

So, what do our requirements look like now?

  • Modernize existing Legacy assets
  • Leverage modern cloud architectures
  • Leverage cloud infrastructures
  • Leverage existing knowledge and skill sets
  • Attract new skills
  • Leverage a common development environment for all development teams
  • Better leverage development spending by combining Legacy development with new, mobile and web development into a common toolset.
  • Achieve development platform independence
  • Reduced number of development tools to meet modern needs

Earlier in this document we made the assertion that modernizing Legacy applications using cloud architecture and a cloud compatible toolkit can reduce development and management complexity which saves time and money.

If you place the Legacy application in a network where it has access to the cloud, you can achieve these objectives.

Adopting a Cloud Architecture Strategy for All Applications

General Nov 07, 2013 Comments Off on Adopting a Cloud Architecture Strategy for All Applications

 

Adopting a Cloud Architecture Strategy for All Applications

Information Technology is not a sport for wimps. It is a complex business that is getting increasingly more complex with time. If it is viewed as a whole, it is almost daunting.

Change is constant and we who are part of the Information Technology industry are controlled by the events, products, and demands created both inside and outside the field. In addition, staffing issues and maintaining infrastructure for all of the new and existing technologies, while at the same time keeping the extended data center in production, complicate and make our task that much more difficult.

What we hear most often, in the context of cloud, typically has nothing to do with Legacy applications. The promised benefits from cloud hosting are mostly focused on applications other than Legacy. The most important reasons for this are that typically Legacy applications do not run on platforms that are hosted in the cloud and their architecture is usually not suited to the kind of integration needed for cloud-based usage.

Also at issue are newer technologies such as mobile and web applications in the organization. Mobile devices, web applications and social media use, necessary by organizations with Legacy applications, present additional challenges. Similar integration issues make the use of these technologies with Legacy applications more difficult than with newer application types.

Legacy staff skills can also be at odds with the use of technologies normally associated with cloud and modern applications. Maintaining these skills is becoming increasing difficult due to the aging of those with the requisite skills and the lack of new developers who are willing to take their place.

Cloud technologies (architecture components), those hardware and software components that are used for networking and interoperability, are not normally associated with legacy applications. However, when one looks at the advancements that have been made in development tools and networking one can see that by modernizing legacy applications in a strategic way, it can help simplify some of the complexity in today’s modern IT environment and can make it so that legacy applications can gain compatibility with newer applications. More specifically, it can mean that Legacy applications can be adapted in a way that makes them suitable for integration with newer and cloud-based applications.

These applications can also be configured for seamless integration with mobile, web and social media. Moreover, an opportunity exists to retool the application so that more uniformity is achieved in both Legacy and its staff development. This results in the opportunity to have legacy and newer developers work as teams and share skill sets.

Solution

Component

Modern Application

Legacy Application

Modernized Legacy Application

Application and Data Integration

Yes

No

Yes

SOA enablement

Yes

No

Yes

User Experience Modernization

Yes

No

Yes

Development Environment Modernization

Yes

No

Yes

Development Staff Modernization

Yes

No

Yes

Cloud Compatible Infrastructure

Yes

No

Yes

Cloud Hosting

Optional

No

Optional

Figure 1 – Goal for the Legacy System

 

A whitepaper is available on this site that explores the benefits of modernizing Legacy applications in such a way so as to modernize not just the code and data but the developers and their tools as well.

Part of the solution is to use modern development IDE based workbenches and, in some cases, bolting a cloud like infrastructure to the existing application using web services that talk to the terminals.

In other cases the solution is achieved by migrating the application and modernizing other aspects of it. Included is changing COBOL code to JAVA that is maintainable by both COBOL programmers and new JAVA programmers. This paper also discusses the economic and time saving benefits of such an approach.

The goals for the approach presented in this paper are highlighted in Figure 1. Our main emphasis is to put Legacy applications on the same, or a similar footing to newer, modern applications.

What follows is a brief explanation of this:

Application and Data Integration: Making tools available so that the Legacy application data, and any needed applications, can be accessed securely by servers and clients outside of its own traditional network. In addition, to make it so the Legacy application can access data, applications and services external to itself.


SOA enablement: Create the ability to offer resources from the Legacy application as web services.

 

User Experience Modernization: Provide the ability to create web, mobile and social media interoperability with the Legacy system and applications.

 

Development Environment Modernization:
IBM, Microfocus, Oracle and others
have shown that the same or similar tools can be used by both Legacy and new developers. The skills overlap can be of great benefit to organizations that take advantage of them. This approach helps to address the skills shortage of Legacy developers and helps prepare for the future so that new developers are available to maintain and enhance the Legacy applications once the current developers retire.

 

Development Staff Modernization:
Legacy development tools usually lack the productivity of a more modern development and deployment environment.

 

Modernization provides an opportunity to modernize the tools and the skills of the development staff.


Cloud Compatible Infrastructure: Other things in this list are made possible after the infrastructure is modernized to a cloud – For example, the architecture.

 

 

 

ModernizationInPlace™

Infos Nov 07, 2013 Comments Off on ModernizationInPlace™

ModernizationInPlace means Modernization without Platform Change

ModernizationInPlace is a strategy based on of a combination of later versions of off the shelf IBM i servers (v6R1+) and HP 3000 applications that have been migrated to Linux or UNIX, commercially available off the shelf tools, open source tools and techniques that can be used to provide modernization solutions to almost any sized IBM i or former HP 3000 MPE/iX shop.  This includes the largest organization as well as organizations with a small budget. On the IBM i, The strategy relies on making the modernization changes on an IBM I platform instead of migrating the application to Linux, Windows or UNIX. For migrated HP 3000 applications, it relies on the use of RDBMS’s (typically Oracle, IBM DB2 or Postgresql) as a replacement for Eloquence.

.Key features of the Transformix ModernizationInPlace approach are :

• iSeries/as400/IBM i/Power i or UNIX or Linux
• Web and Mobile UX
• Green Screen Modernization
• Virtualization
• Cloud Hosting
• RDBMS Modernization
• Rapid Application Development

Transformix focuses on modernizing Legacy applications so that they are cloud architecture compatible through the following steps:

More ModernizationInPlace

 

Cloud and Cloud Architecture Adoption

General Nov 06, 2013 Comments Off on Cloud and Cloud Architecture Adoption

Modernizing legacy applications so that they could work in a cloud computing architecture environment has many benefits that are independent of those offered by hosting providers. 

Transformix focuses on modernizing Legacy applications so that they are cloud architecture compatible.

 

Read more »

Convert Legacy Applications into Future-Proof Enterprise Applications with the CUBA-Platform

Infos Nov 06, 2013 Comments Off on Convert Legacy Applications into Future-Proof Enterprise Applications with the CUBA-Platform

Modernization with minimal changes to the original application

With TransformixTools and the CUBA-Platform migrated applications can co-exists with modernized components. This allows for modernization with minimal disruption of business operations.

Modernization might include:

  • User Interface Upgrades
    • Mobile
    • Web
    • Rich Clients
  • Web Services Integraion
  • Data source Upgrade -RDBMS
  • Social Media Integration
  • Programming Language Conversion
  • Utility and 3rd Party Products Replacement
  • Integration and Networking
    • Web Services
    • RSS feeds
    • SSH
More Modernization