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
- Component Assembly (system) of the initial system
- Allocation of the initial system
- Repository with components for all architectural alternatives (i.e. including solved antipatterns)
- Usage model: 30 users use the system in a closed workload with a think time of 10 seconds.
- 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 File:PCM BRS model antipatterns.zip
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.
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 .
- 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.
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.
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.
This work is related to our PerOpteryx approach to optimise software architectures for performance, reliability and cost.
- 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.