App to App Dependencies


Overview

Out of the box, CAST Imaging displays interaction between items within an application, i.e. intra-application links. However, it is also possible to configure CAST Imaging to display interaction between applications (known as the App to App Dependencies feature), i.e. inter-application links where those links exist. This panel provides a range of settings specific to this feature.

Applications tab

This tab lists all the applications that are available for consultation using the App to App Dependencies feature. Out of the box no applications will be listed, even if applications have been fully analyzed or imported into CAST Imaging already.

Links between the applications must be “generated” before any application will be listed.

To generate links between applications, click the “globe” icon:

The link generation process will then begin. Technically, CAST Imaging will scan all available applications (those that have been fully analyzed or imported in CAST Imaging) for objects that potentially have links to objects in other applications. The Generating Links text will flash, and the Job Status icon will (when clicked) provide additional information about the process:

When the process is complete, the status updates and the page will be populated with all the Applications that were present in CAST Imaging when the link generation process was started:

IMAGE

IMAGE

The popup in the bottom right corner shows total links generated: in other words:

  • if an initial generation process has created 5 links (for example), the popup will show “5 links generated”.
  • if a subsequent link generation process is run and no new links are found, the popup will display 5 links generated.

The App to App Dependencies Links Available column indicates the following:

  • Yes - CAST Imaging has detected objects in the current application which link to other applications present in CAST Imaging.
  • No - CAST Imaging has not detected any objects in the current application which link to other applications present in CAST Imaging.

During the link generation process, information is taken from the following locations:

Universal Linker extension

From information generated by the com.castsoftware.wbslinker extension (this extension is automatically downloaded and installed as a dependent extension for all applications) during the application analysis: this information is stored with the application and imported into CAST Imaging.

queries.json file

From a file called queries.json that is delivered with CAST Imaging: links defined in this file are “static” and have been defined based on experience gained by working with CAST customers. The file contains specific “rule” sections that determine which type of links will be considered as App to App Dependencies. In addition, “orphan” objects (i.e. those objects that are potential App to App items but which are not linked to any other App to App items) are also designated in this queries.json file.

Links defined in queries.json are less accurate than those generated from data created by the com.castsoftware.wbslinker extension and that this file and the link definitions in it can evolve between successive release of CAST Imaging. The file is located here:

%PROGRAMFILES%\CAST\Imaging\CAST-Imaging-Viewer\web-service-linker\venv\bin\

Currently this file creates links of the following type:

  • Data Access - CICS Data
  • Data Access - IMS DB
  • Data Access - IMS PSB
  • Data Access - JCL Dataset
  • Data Access - PSB to Cobol
  • Duplicated - Assembler
  • File Access - Cobol
  • File Access - IMS
  • File Access - Microfocus APS
  • File Transfer - NDM
  • File Transfer - FTP
  • MF to NAS Share
  • Redirect
  • Referenced Data - Fct
  • Referenced Data - Informatica
  • Referenced Data - Proc
  • Referenced Data - Table
  • Remote Call
  • Remote Call - Assembler
  • Remote Call - CFLOW
  • Scheduler Call
  • Shared Data

The link generation process will take into account all Applications that are present in CAST Imaging at the point when the process is started. If additional Applications are subsequently imported into CAST Imaging, and they must be included in the Application to Application Dependencies scope, then the link generation process must be run again.

Viewing the status of any ongoing jobs

If you need to run a link generation action, the job is placed in a queue if any other jobs are currently ongoing (such as application import or delete). You can view the status and/or cancel any ongoing jobs using the following option:

How do I include applications in the App to App Dependencies scope?

When the links have been successfully generated, the final step that is required before applications are visible in the App to App Dependencies scope, is to select them for inclusion. Use the check box on the left hand side to choose which applications you want to include:

Remember to use the pagination options underneath the table if you have more than 10 applications.

This tab displays all links between applications that have been manually hidden (right click the link between the application and select Hide Link):

IMAGE

To unhide a hidden link, select the check box next to the link. You can also download a list of all hidden links to CSV file using the export option:

IMAGE

Rules Definition tab

This panel is used to build rules that define when a link between applications should be excluded from the App to App Dependencies scope. In other words you can define a rule or rules that will exclude a link between applications based on any one, a combination or all of the following:

  • Caller object’s name
  • Caller object’s type
  • Caller object’s parent application
  • Callee object’s name
  • Callee object’s type
  • Callee object’s parent application

When the panel is opened for the first time, some predefined rules will be present - these rules cannot be deleted/edited:

Create a new rule

To create a new rule, click the + icon and a new line (i.e. a rule definition) will appear in the list. Then click the edit button to define the rule:

Now configure the rule, for example, to exclude links between applications involving specific object names, define the Caller Name and Callee Name (you can also define just the Caller Name or just the Callee Name):

To define a rule to exclude links between applications involving a specific caller object type, choose the caller type from the list of available items, for example .NET Program (you can also define just the Callee Type, or both Caller Type and Callee Type):

To define a rule to exclude links between specific applications, choose either the Caller or Callee Application (or both):

  • Rules can use any combination of the columns available in the editor.
  • New rules are only taken into account the next time you run the link generation action and must also be “enabled” (see below ).
  • It is not possible to edit/delete default rules.
  • The fields Caller Name and Callee Name will accept regular expressions (Java Regular expressions only - see for example https://www.w3schools.com/java/java_regex.asp) :

Enable/disable rules

A rule is only “active” when the check box highlighted in the image below is enabled:

A disabled rule will no longer be taken into account the next time the link generation action is run.

Delete a rule

Use the trash icon to remove a rule:

The rule will no longer be taken into account the next time the link generation action is run.

Export / import rules

It is possible to export all rules available in the UI to file (.csv format). This file can then be used as an import on another CAST Imaging installation to avoid having to recreate the rules manually:

If you have specified specific application/objects that do not exist in the target CAST Imaging instance, inconsistencies may be evident when you run the link generation. Ensure that your rules are all consistent after you import them in bulk.

Technical information about rules

When creating a rule, you should always define the rule pattern (i.e. the caller and callee names) for the lowest level of links available in the App to App Dependencies scope for the rule to work correctly. “Lowest level” in this situation means when you cannot drill down any further, for example:

or between an object and a method: