There's new stuff! We're constantly making AWS Blu Insights better. Here are some of the notable new features and improvements that we've made to AWS Blu Insights since it first launched.
Cards can be linked.
CLIST (script language to execute TSO/E commands) are now supported by the classification.
We added the support of new statements both of zOS and AS400 languages.
CLIST files can refer to other CLIST files using a statement like NAME1.NAME2.CLIST(MY_PROG)
where NAME1
and NAME2
are any valid names.
The INCLUDE statement (to build relationships between CTL and Programs) is now supported based on these two formats:
INCLUDE PROGRAM1
INCLUDE LIBRARY(PROGRAM1)
Message format service (MFS) is a part of the IBM Information Management System (IMS). This service receives messages from IMS, formats and sends it back to IMS. The dependencies analysis can now identify the message identifier in MFS files and detect their usage in Cobol files. This will create a link between Cobol file and the MFS file that defines the message, CEM01O
in the following example.CEM01O
message declaration in a MFS file
CEM01O MSG TYPE=OUTPUT,SOR=(CEM01,IGNORE),NXT=CEM01I
Use of CEM01O
message in Cobol file
CALL 'CBLTDLI' USING
IM-PARM-COUNT
IM-CALL-FUNC IO-PCB
TP-SEGMENT
'CEM01O'.
Many JCL statements can address CLIST files by prefixing their name by %
. For instance %MY_CLIST
refers to a CLIST file named MY_CLIST
in the project.
EXEC PGM=IKJEFT01 PARM='%MY_CLIST'
In JCL, there is a command named ISPSTART
that is used to reference a program. The dependencies analysis now handles this statement. For example:
ISPSTART CMD(MY_PROG)
In JCL, we can execute a file, like MY_PROG
, with statements like NAME1.NAME2.EXEC(MY_PROG)
. The NAME1
and NAME2
parts are any valid names. Statements like NAME1.EXEC(MY_PROG)
are also valid. The dependencies analysis now handles such statements.
COPY
statement is now supported to create links between PL1 programs and Copybook. The below statement establish relationship with Copybook CPY1
from the PL1 file.
COPY CPY1
Before, dependency analysis handle the INCLUDE
statement with keyword INCLUDE
and follows by a Copybook identifier. Now, it also handles the library name, either SYSLIB
or SFSTDS
, in between INCLUDE
keyword and the identifier. Example for the INCLUDE
statement with library name as follows.
% INCLUDE SYSLIB (CPY1 )
Free-form code is an evolution of RPG where statements can start at any column. RPG files starting with **FREE
are full free-form programs. Now, the dependencies analysis handles those files. RPG dependencies analysis is already detecting free-form section between /FREE
and /END-FREE
instructions, but is only focusing on SQL requests in these sections.
/Free
Exec SQL Update USER
Set LAST-NAME = "DOE"
Where NAME = "JANE";
/End-Free
RPG statements /COPY
, /INCLUDE
and EXEC SQL
are handled in free-form code like in a fixed-form RPG program, i.e. classic RPG or RPGLE code. The dependencies analysis handles declaration statements using an external data definition file, printer or program. Those statements are data structure declaration DCL-DS
, file declaration DCL-F
and prototype declaration DCL-PR
,
dcl-ds local-alias extname('dds-file')
dcl-f printer-file printer
dcl-pr prototype-name EXTNAME('external-program')
According to the service logs, none of the detected vulnerabilities have been exploited prior to the Bug Bounty Program.
In JCL, statement parameters are not ordered. Those two following examples are equivalent.
EXEC PROC=procedure_file ... NAME=program, PSB=psb_name
EXEC PROC=procedure_file ... PSB=psb_name, NAME=program
The JCL analysis has been improved to take that into account for EXEC
statements.
Some Cobol keywords in lower case, like the following example, generated false positive values for dynamic calls.
move '27' to W01returnCode
False positive Missing Program has been prevented for the SQL statements with EXEC keyword.
Improved the interpretation of the PL1 procedure (PROC) definition to avoid the false positive Missing Program
In RPG we can declare a prototype linked to an external program. Until now, the dependencies analysis was only considering the usage of the declared prototypes. In some cases if the prototype wasn't used the dependencies analysis wouldn't create a link to the referenced program. The dependencies analysis now directly creates a dependency to the external program at the prototype declaration. In the example below we declare a prototype named myprototype
that can be used later in the RPG file without creating new dependency. With the prototype declaration, we create a dependency to a program named MY_PROG
in the project.
D myprototype PR EXTPGM('MY_PROG')
On a Mainframe, SQL files can have margins, like the following example. Now, dependencies analysis ignore margin while processing it.
000000000 CREATE TABLE
000000000 TABLE1;
“I very frequently get the question: ‘What’s going to change in the next 10 years?’ And that is a very interesting question; it’s a very common one. I almost never get the question: ‘What’s not going to change in the next 10 years?’ And I submit to you that second question is actually the more important of the two — because you can build a business strategy around the things that are stable in time […] When you have something that you know is true, even over the long term, you can afford to put a lot of energy into it.”
― Jeff Bezos
This advice from Jeff is one pillar of the design of AWS Blu Insights. In the mainframe modernization business, there are a set of obvious things that will never change both for users (e.g. sales & delivery teams) and customers (end-users contracting the modernization). For example: increase prospects & customers trust, getting back to prospects within hours after receiving the source code, reducing the level of expertise required by non-technical or non-expert stakeholders (i.e. usually decisions makers on customers side), providing a sharp follow-up on project execution, sharing and collaborating transparently, building links among all the tools, identifying potential risks upfront, etc. We remain focus on our mission by delivering new features to address things that will never change. Although we are using new techniques and technologies to address them. Working backward as usual! This new release is full of novelties: Automatic graph decomposition, Potential extra links, graph operations, BI Builder, Duplicated program ids, Workspace in TC, Codebase from S3, etc. See details below.
For users who have been using AWS Blu Insights for quite some time, getting a ready-for-assessment Codebase project can become a mechanical and time-consuming task with no added value. Most of the projects require the same steps to get the Transformation Center project up and running with no extra fine-tuning as AWS Blu Insights’ components get more mature. And this is exactly why we built BI Builder, i.e. jumpstart AWS Blu Insights projects and give you back those precious minutes (sometimes hours) to focus on the things that matter more. The Builder automates all the process by setting up your Codebase project, launching the required analysis, creating the Transformation Center Project and launching the first Velocity Run to get the first outputs. Blu Insights will notify you when each step is done.
Automatic constraints-based subgraph extraction: Split your large graphs into multiple subgraphs by simply tweaking some configuration knobs: Pick the number of subgraphs to be generated, if needed, add other entry points that will be used to traverse the graph, specify maximum constraints (e.g. number of files, number of effective lines of code) that will be enforced (i.e. not exceeded) on all the generated subgraphs and if needed, specify a file type distribution to target. Subgraphs with similar types of distribution will be favored during the generation. Refer to the dedicated blog article to delve deeper into the vision and motivation behind this change, and to the accompanying documentation for a comprehensive and practical guide on leveraging this feature.
Supercharge your graphs with custom artefacts: Users can customize the presented artefacts of the graph by editing their types and colors. They can also hide and show nodes in their subgraphs. For expert users, they can download the results as a JSON file, rework it and upload it again. Usually the goal is to add or remove some vertices and/or edges to get the graph that most fits the customer’s needs or the project methodology. Now, it is possible to add, customize, and remove edges and vertices within a few clicks.
Guided-enrichment using cross references: Enrich your graphs with potential undetected dependencies. When you launch a dependency analysis, a specific engine supporting hundreds of statements run to detect relationships. Sometimes it may miss a few links (e.g. new statement, new language, etc.) which may lead to an incomplete result. This new feature will help you remove these gaps based on filtered propositions using cross references between files.
We added the support of new languages and statements based on actual use cases shared by the delivery teams.
Dependency analysis can now handle the Easytrieve (EZT) language. In particular, when an Easytrieve macro (MACRO) named macro-file is used in Easytrieve source file, like the following example:
%<macro-file>
Besides other programs, dependency analysis supports control card (CTL) files linkage for the system utility scenario. In the following example, JCL establish the dependency link with CTL named CTL_FILE and PSB named PSB_FILE file.
EXEC PGM=DFSRRC00, PARM=(DLI, CTL_FILE, PSB_FILE)
Dependency analysis can now handle ADDRQ, DEMAND and DEMANDH statements, and create the dependency link between the JCL files and the job in the parameter of these statements. In the following example, the dependencies are FIRST_FILE and SECOND_FILE in the first statement and the dependency is FIRST_FILE in the second one.
ADDRQ,JOB=FIRST_FILE,DEPJOB=SECOND_FILE
DEMAND,JOB=FIRST_FILE
In ASM and Cobol files, it is possible to define an ENTRY statement. This statement is an entry point to a program. The dependencies analysis can now detect and link such calls.
COPY statements among MFS files are now detected.
SQLC files are similar to SQL but with extra margins. The dependency analysis can now handle this type of files and detect their dependencies.
New billing mechanism: The Transformation Center service pricing has evolved to address customers' needs and expectations. The key changes are:
More details can be found in the documentation and FAQ.
Weather report: This report allows to see at a glance the compliance of the inputs and estimate the efforts required to modernize the related codebase. The option Only Weather Report in the Velocity pop-up allows you to get as many weather reports as you would like at no cost.
Workspace: We can now visualize transformation outputs directly in Blu Insights and benefits from all its IDE-like features.
Create codebase projects from S3 bucket: This feature allows users to create codebase projects from an S3 bucket by granting Blu Insights temporary access to their source code through the S3 presigned URL. The project creation is handled in the following steps: First, the user creates a presigned URL from the source code file hosted in an S3 bucket. Then, they pass the URL to Blu Insights. This latter uploads the source code based on the provided URL to its infrastructure and then creates the project.
Duplicated Cobol program identifiers detection: Some Cobol files with different names may have the same PROGRAM-ID. Getting the list of those files during the assessment is important in order to help understand the dependencies among all programs. Blu Insights offers a new feature to automatically extract this information. You can find this tool in Assets > Statistics in the … menu. The goal of this tool is to group all files that have the same Program ID in order to let the user compare and replace the files that do not have a unique Program ID.
Automatic Impacts analysis: This new module lets you see at a glance all workpackages, test scenarios, labels, statuses and team members that are impacted by the code refresh. The Impacts module goes through all the artefacts (workpackages, test scenarios, statuses, labels and team members) of the reference project, and checks if they are linked to a file that is modified or deleted in the refreshed project. Each artifact category has its own tab. The impacted artifacts are listed in their tab, along with the files impacting them.
Board Notes: We added a new notes section to let you keep your project notes in one private and unique place.
In TN5250, the connection phase is separated from the terminal screen. In case of a connection failure, Errors like server/socket issue or unavailability of the workstationId will be displayed on the form page.
We updated the estimates service to align with the Transformation Center pricing model and the new SOW template.
AMLABEL DBD NAME=AMPROGRAM,ACCESS=(HIDAM,VSAM)
DCL HELP_TEXT_TAB_01(170) CHAR(110) INIT('CALL PROGRAM')
One of our favorite Leadership Principle is “Insist on Highest Standards”. We apply it in our work methodology, our testing strategy, development workflow, deployment strategy, etc. It is actionable and the outcomes are easy to identify (i.e. less bugs and more satisfied customers). For example, we maintain over 2000 test cases covering the most used UI features, the dependencies statements, the classification, the security, the performance, etc. This new release was fully dedicated to quality, i.e. we updated over 200 test cases and mainly improved existing features (e.g. UI fixes, dependencies results and Capture&Replay fine tuning).
We are receiving more and more feedbacks from all of you. Please continue doing so, we are happy to help and improve AWS Blu Insights working backward from your needs.
All the details about this new release are below and the documentation has been updated accordingly. Enjoy!
REWRITE SUBFILE STUDENT-SUBFILE
label PCB TYPE=DB DBDNAME=DBD_FILE
EXEC DLIBMP,NAME=COBOL_PROGRAM,PSB=PSBFILE
We improved the performances of files deletion in Codebase projects (going from 60+ minutes to 30 seconds for 2000 files)!
IF COND(&VAR *EQ '1') THEN(CALL PGM(PGM1))
A B1KID2 R REFFLD(FLD) COLHDG('HDG1')
Legacy login and registration pages (using the MFA) are now deprecated, and the user is redirected to the Single Sign-On pages.
You can now add a description for your profile. It will help you identify at a glance which account you are working on. This description is displayed under your name at the top right of the application.
This new version of AWS Blu Insights embeds, as usual, new features and improvements, but it also brings major changes such as Single Sign-On (SSO) and the Transformation Center billing.
Single Sign-On
We are excited to share that AWS Blu Insights has added Single Sign-On (SSO) capabilities to improve the security and simplify navigation from the parent service (Mainframe Modernization). AWS Blu Insights access will be possible directly from the AWS Console. Registration on https://bluinsights.aws/ will no longer be required (and will later be deprecated).
We frequently heard from customers that they wanted to use their AWS accounts when working on AWS Blu Age refactoring projects. With this new feature, customers can now safely manage their accounts, leveraging AWS authentication mechanisms. The migration of the legacy accounts is ongoing.
Billing of the transformation
The usage of the Transformation Center is now charged following the pricing model described here. We describe all the details on how it works here.
The design, implementation and deployment of these two features required a thorough security validation (through a PenTest) in collaboration with AppSec teams. The outcome is a more secured AWS Blu Insights for the benefits of our customers.
More resources (Your inputs are welcome)
The team added over 100 new entries to the FAQ dealing with the different features, security, etc. We also added a new Resources section which will contain more details about major updates, useful links, usage examples, etc. We invite all of you to help us enrich this section. Please share your contributions and lessons learned.
MOVE "CALL PGM(MY_PROG)" TO MY_VAR
CALL ANOTHER_FILE USING MY_VAR
A R DSPF_RECORD
COPY DDS-DSPF_RECORD-O OF DSPF_FILE
The team is excited to see how hundreds of users are adopting the solution to modernize legacy applications and move them to the Cloud. We have an ambitious plan for this year and the first outcomes are already here in this release full of improvements and new features. You may also noticed that AWS Blu Insights moved from bluinsights.aws to bluinsights.aws!
Codebase
Capture & Replay
Dashboards
Transformation Center
We have made most of the improvements to speed up Runs launching and results display.
Codebase
Dependencies
Classification
Secured Spaces
Capture & Replay
System Utilities
Misc
Website & Documentation
Codebase
Transformation Center
Capture & Replay
Misc
Transformation Center
Capture & Replay
Dependencies
Misc
Capture & Replay
Transformation Center
Dependencies
Misc
Capture & Replay
Codebase
Transformation Center
Dependencies
MiscSEmail update with invalid email breaks the Profile.
This is one of the major versions of AWS Blu Insights! Most of the work is behind the scene but it brings more stability, better performances, improved User eXperience and much more. Enjoy!
Dependencies
Performances
This new version of AWS Blu Insights brings multiple performance improvements including:
Codebase
Terminals
Transformation Center
Misc
Codebase
TN5250
Transformation Center
Misc
Codebase
Transformation Center
Improvements
Transformation Center
Capture & Replay
Codebase
Bug fixes
Transformation Center:
Capture & Replay (TN5250):
Dependencies:
Documentation: The website (and documentation) has been updated with all the novelties.
It’s the summer, our team is taking a few days to relax, take some rest and come back later full of energy to deliver new features. During this batch, we mainly focus on improvements, documentation updates and a lot of non-visible work (test automations, technical updates, security checks, etc.). Here are the main achievements.
Transformation Center
Capture & Replay
Codebase
Improvements
Transformation Center
Dependencies
Transformation Center:
Estimates
Secured Space
Codebase
To-Dos
Various
Documentation: The website (and documentation) has been updated with all the novelties.
Documentation: The website (and documentation) has been updated with all the novelties.