Fujitsu Laboratories Ltd has developed a technology that can partition structures through program analysis thereby simplifying the modification of complex business applications.

Generally, business applications that repeat revisions due to maintenance or the addition of new features often have internal structures that become complex, and any modifications can have wide-ranging ramifications. As a result, modifying applications in response to business changes is an enormous burden.

To partition a business application into each of its functional components, Fujitsu Laboratories has developed a technology that analyses the dependencies between programs and data, and then identifies boundary candidates that would partition the program in a way that decreases the mutual dependency.

Using access logs to the database when the application is actually run, Fujitsu Laboratories also developed technology that, from among the boundary candidates, finds an area of the program that should be executed as a series of operations, and then finds those areas where the business relationship is highest. By enabling the visualisation of the program’s boundaries that partition by function, it is possible to partition applications in cases that this had previously been difficult to achieve.

As a result, by adding revisions or upgrades that localise the changes based on the boundaries, it is possible to quickly respond to changes in their operations or business.

Fujitsu Laboratories' technology automatically identifies boundaries that can partition the internal structure of business applications by function, using the program source code and database access logs as inputs.

20170526_Fujitsu_Partitioning_Tech01 ** Figure 1:** Flowchart of the newly developed technology.

Application structure analysis

When partitioning an application, this technology analyses the structure of the application, arranging the data in a way that minimises the number of dependencies, and, in particular, extracts boundaries that minimise mutual write operation dependencies.

Beginning with a program called from outside the application, or a specified program, the technology defines groups that contain all called functions. Then the program weighs the relationships between them, based on the idea that program groups that write to the same business data have a deep relationship with the business data, and extracts areas that are surrounded by boundaries (as shown in Figure 1) using a clustering technology developed with Fujitsu Laboratories' proprietary application structure visualisation software map technology. At the same time, data that is written by many program groups is split off as common data.

Execution log information analysis

When database access logs collected during program runs are available for use, the technology identifies areas where operations ought to be executed as a series, supplementing the results obtained in the first step.

In analysing execution log information, the technology extracts database access commands as operational logs for the business application being run, extrapolates data access commands that, operationally ought to be executed in series, and identifies the programs corresponding to those commands. Using this information, the technology extracts areas of operations that ought to be executed as a series.

Visualisation of boundaries

This technology uses software map technology to visualise the results of the first two steps (Figure 1-3). The visualisation places areas with a strong mutual relationship close together.

Results

By using this technology to identify boundaries with few dependencies, it has become possible to partition applications with a reduced number of man-hours. For example, in a test using applications from a purchasing department, the boundaries obtained from this newly developed technology (Figure 2, right) reduced mutual dependencies to less than about 15 per cent compared with boundaries based on the categories established in the initial design (Figure 2, left), which resulted in a reduced burden of investigation and modification when partitioning the program.

20170526_Fujitsu_Partitioning_Tech02 Figure 2: *Example of boundary visualisation using categories based on the initial design (left) and the newly developed technology (right). *

Using these results, revisions and improvements can be made to applications that localise the changes, while still considering business relationships and update frequency, enabling rapid response to changes in customers' businesses. In addition, this technology enables customers to more efficiently consider which parts of their business applications to shift to microservices or migrate to the cloud in stages.

Fujitsu Laboratories will continue to test the application of this technology through analysing business applications in a variety of industries. The goal is to commercialise this technology by 2018.