Legacy Powers Legendary (part 2)

part 2 of 2

Let’s take a closer look at the MultiValue applications by asking these questions:

  • What are we doing for our application so that it can evolve from Legacy to Legendry?
  • What are we doing to help our application to age gracefully and not become a burden on our business processes and IT?



  • Always revisit the source code and enhance it to take advantage of new best practices and new features.
  • Start with the low hanging fruits and there is plenty to choose from.
  • Reduce the code size as much as possible.
  • Maintaining programs made up of thousands of lines of code is a nightmare for any developer, especially new ones.
  • Also, a lot of source code in one program can easily introduce errors and bugs in the code.

Database housekeeping:

  • Make sure that your database files are properly optimized on a regular basis to avoid file corruptions and also to enhance performance.
  • Develop a methodology where source code is cross-checked by different developers in the environment.
  • Enhance the code by replacing OS-dependent functionality such as GCI with new modern approaches like RESTful services. This will make the application less dependent on a specific OS which can lead to many issues in case the OS is upgraded or changed.
  • Start cleaning up the code by separating the presentation layer from the business functionality. This will make the code reusable through APIs such as Web Applications, mobile applications, etc.
  • Always check the new functionalities released in the MultiValue application platform, such as Audit Logging (we have white papers on our website), Replication, etc. and evaluate their benefits and value to your application and environment.
  • Consider the implementation of products that can reduce the risk to your environments by setting up an HA/DR environment using Replication.
  • Consider implementing Replication with External Data Access (EDA) where data can automatically be normalized (i.e., for SQL Server) thus providing users with the opportunity to self-serve using reporting and BI tools from third party vendors. This will reduce overhead on the product environment and your IT personnel.
  • Introduce new skill sets into the environment to help interject new concepts and methodologies making the environment richer.
  • Create a well-structured modularized environment. This will help your R&D team develop different skill sets while being able to integrate with other modules developed by team members with other skills sets.
  • Consider the tools available to modernize your application to:
    • provide a GUI interface in .NET forms
    • create RESTful services to provide B2B integration
    • create a web site to access the database, providing more services to the users
    • develop a mobile application that integrates with the database using RESTful services.

You can accomplish any or all of these are tasks today by using the products and tools available from Rocket Software.

  • Consider our recently released cloud-based product, MultiValue Integration Server (MVIS) which can be deployed on Azure or AWS platforms. If you have plans to use any of the previously mentioned functionality such as web applications, mobile apps or even implementing your software as SAAS, then you definitely need to look into MVIS.
  • Since security is an integral pillar of any environment, we have continuously been enhancing security solutions such as Encryption at Rest, implementing OpenSSL for data in transit, Audit Logging for federal compliance, and supporting Single Sign On (SSO).
  • We have implemented the Python language natively on our D3, UniData and UniVerse application platforms, so you can leverage all the Python packages available and also attract Python skills into the MV space.

The tools and products offered today by Rocket Software in the MV space can cater to any need and requirement to evolve your MV application. All you have to do is take advantage of these products and don’t let your applicant remain stagnant.

Below is an image depicting the different products and solutions in Rocket MultiValue space. All these tools and products were created by Rocket Software for one purpose only – to empower our partners and customers to evolve. Our journey continues and does not stop here.

Rocket Software has a full team of dedicated Sales Engineers that are available to help you with planning and providing expert advice with any of the solutions mentioned, without any cost to the customer. Rocket Software also has a Customer Solutions Engineering team that can also help implement any of the products, through a chargeable engagement

In conclusion, Rocket Software is relentless in providing solutions that can take our customers from Legacy to Legendary; it is our goal and we want it to be yours too!

Safwat Boulos

Safwat Boulos 4 Posts

A Senior Sales Engineer at Rocket, Safwat works with partners and customers throughout North America to implement and develop UniVerse/UniData, Java, .Net, Web application, Web Services and SOA. He has over 30 years of software design and development experience and three certifications from IBM in architecture and design of distributed applications. Safwat also helps with Eclipse and MS Visual Studio IDEs.


  • Avatar

    Baker Hughes Reply

    February 5, 2020 at 11:40 am

    A couple adds, from a DBA perspective, to get ready for modernization:
    1. Remove deprecated OPENs for files no longer used.
    2. Delete Indices no longer in use. (Much could be said under this point, some developers don’t even look to see if an existing index can be leveraged, they love to create new I-descriptor indices.)
    3. Everyone’s least favorite housekeeping – clean up your Dictionaries! The Dict layer could easily be used as the Meta Data to direct any type of conversion, but most MV systems are so convoluted at this layer, its easier to start over, sadly.
    4. When possible, use a Common $Insert to define all the fields in each table with EQuates.
    5. DON’T open every table on the system when the user logs in. Make it module specific. What modules does the user ‘role’ in the organization give them access to? Only Open files for those modules. If you do an ‘fuser’ against a specific file and every process on the system has a handle to it, thats likely an indicator that your Open is too wide.
    6. If you Open a file in a SUBR call from an I-descriptor, make sure you open it to a Named Common – especially if that virtual field is used in batch reports (you are potentially opening that file thousands of times, needlessly.

Leave a Comment

Your email address will not be published. Required fields are marked *