AntipatternGuiltiness

Aus SDQ-Wiki

On this page, we provide the models of the Business Reporting System used in a case study for our process to effectively identify guilty performance antipatterns.

Business Reporting System Model

Screenshots

  • Resource Environment:
    • All CPUs have a processing rate of 10.0, the HDD of Server 3 has a processing rate of 8.0

Some Service Effect Specifications (SEFFs)

The PCM model instance

You can download the PCM model instance Datei:PCM BRS model antipatterns.zip

BRS configuration

BRS PCM example
Figure 1: Case Study: BRS Software System Model

The static structure and allocation of the BRS system is modelled as shown in Figure 1. The behaviour descriptions of the single components can be found in the Service Effect Specification above and in the model files linked here. All CPUs have a processing rate of 10.0, the HDD of Server 3 has a processing rate of 8.0.


BRS PCM example
Figure 2: User model for the BRS system

Figure 2 shows how users use the system as a PCM usage model. A usage model consists of a set of actions that are connected to form a flow. A <<SystemCallAction>> marks a call to the system boundary. For example, the first <<SystemCallAction>> Webserver.login models that each user arriving at the system first calls the login service. A <<Loop>> action repeats the inner behaviour as many times as given in the Iterations attribute. Not shown in the diagram is the workload of the systems: 30 users use the system in a closed workload with a think time of 10 seconds.


Reasoning on Antipatterns in BRS

In this Section we briefly describe the antipatterns that have been detected in the BRS software system and that are the ones necessary to our experimentation. This description refers to the types of antipatterns that have been classified by C.Smith and L.Williams in [1].

  • Circuitous Treasure Hunt is due to the bad organization of the Database that leads the CoreReportingEngine to perform several database

transactions, and a large amount of processing is required for each request.

  • Concurrent Processing Systems reveals an unbalanced usage of available processors; in the BRS system the node on which is deployed the Webserver is less used than the one on which Scheduler, GraphicalReporting, and OnlineReporting are deployed.
  • Blob means a leader class or component that performs most of the work; in the BRS system the Scheduler component generates an excessive message traffic, since it has to accept requests coming from the Webserver and deliver them to the others components GraphicalReporting, OnlineReporting, or UserManagement.
  • One-Lane Bridge is due to the Database component that is only able to serve one request at a time, so no processes may execute concurrently.
  • Empty Semi Trucks reveals that many small messages for each of the most frequently occurring requests are exchanged between OnlineReporting and the CoreReportingEngine.
  • The Ramp means an increasing response time as the system is used. An increasing amount of data causes the Database to slow down over time.
  • Extensive processing takes into account the services of two different components: GraphicalReporting is slow and causes high loads, thus OnlineReporting (that has tight requirements) is slowed down.
  • The Ramp is also occurring in the Cache component, in fact it reveals an increasing processing time as the system is used.

Additional Case Study Results

In addition to the results presented in the paper, we present results for further requirements here. The target performance index of each requirement is plotted on the y-axis, whereas on the x-axis the degree of guiltiness of antipatterns is represented. The horizontal bottommost line is the requirement threshold, that is the response time required, whereas the horizontal topmost line is the observed value for the original BRS system before any modification. Single points represent the response times observed after the separate solution of each performance antipatterns, and they are labeled with the ID of the antipattern that has been solved for that specific point. Of course, the points are situated, along the x-axis, on the corresponding guiltiness degree of the specific antipattern.

Figure 3: Results for requirement R2 U(Proc2). Currently, the utilisation formula only allows to differentiate between guilty antipatterns (score > 0) and non-guilty antipatterns (score = 0). We observe that the solution of each guilty antipatterns indeed improves the system.
Figure 4: Results for requirement R6 T(CSgraphicalReport). We observe that the solution of the antipatterns that have been assigned a significant guiltiness score indeed improve the system throughput (i.e. increase the throughput). The score can roughly predict the amount of imüprovement. Only the solution of antipatterns PA3 and PA7 is better than expected in relation to the other antipatterns. Still, none of the antipattern solutions can ultimatively satisfy teh requirement. A combination of antipattern solutions could help here.
Figure 5: Results for requirement R7 RT(CSonlineReport). Again, we observe that the antipatterns that have been assigned a significant guiltiness score improve the system's response time. The score reflects the improvement potential of each antipattern well.

How to open the model

PCM all in one drop

You can use the latest PCM 3.1 drop to open the models. The drop includes an Eclipse with all plugins pre-installed, you can download an run it. However, because of the included third-party Eclipse plugins, we cannot provide an unprotected download of the drop. Thus, you will need a password to download the tool. Please feel free to contact us to obtain the password.

Install manually

You can also directly install the PCM 3.1 by using our update site. Here, you do not need a password, but you need to install the other required plugins yourself. Please see PCM_3.1#Installation_through_update_site for an installation guide.

See also

This work is related to our PerOpteryx approach to optimise software architectures for performance, reliability and cost.

  1. C. U. Smith and L. G. Williams. More new software antipatterns: Even more ways to shoot yourself in the foot. In Int. CMG Conference, pages 717-725, 2003.