Evaluating Design 1 for Performance

Design 1 using domain entities

Design 1 using domain entities - For reference

Now lets take the next parameter "Performance" into account.

How do you rate this system wrt "Performance"? Good, Bad or WORST.

If you ask me to rate then according to me the Performance of this system is WORST.

Again before commenting on "Performance" wrt our system, lets first understand what is performance all about?

How would we define performance of any system?

Performance of any system is defined wrt the response time of the system, to be more precise response time of the behavior exposed by the system.

Response time of a behavior offered by the system is the time taken by the system to deliver the response from the time the request is sent by the user.

OR

It's the time elapsed between the request and response of a behavior offered by the system.

Performance is inversely proportional to the response time ie longer the response time, lesser is the performance.

So when we say that performance is the worst, that means the response time has to be extremely high or exponentially high and if we say that the performance is good then the response time has to be minimal.

So what do you think about the response time of this behavior offered by the system? Is it extremely high or it is very low?

Whenever we are supposed to evaluate the performance of a system, one of the very critical parameters that we need to study is the way objects are interacting within the system and also the way the actor interacts with the system.

I am sure that you have heard about local and distributed or remote communication model.

Local communication is a communication between two objects both of which are located in the same address space.

While distributed communication is a communication between two objects both of which are in different address space.

Can we compare the difference between local and distributed communication wrt response time?

Example - Face to face communication versus local phone call versus ISD call.

I am sure we will agree that remote calls are many times more expensive as compared to local call. Most of the time the response time of remote call is at least 20 times more expensive as compared to local call.

In our proposed interaction model the number of remote calls are directly proportional to the number of domain entities to be manipulated in that use case.

Why do we have so many remote calls in this design?

The reason is never the actor and the domain entities can exist in the same address space, so any communication between the actor and the domain entities will always be a remote communication.

And since in this arrangement the actor is directly interacting with the domain entities every communication will be a remote call.

In our model you can see that the RRC is having at least 8 remote calls to execute the behavior called as "Reserving a ticket". If for every other remote call it takes at least 30 seconds, for the entire behavior, the total response time will be 4 minutes.

In case of any complex behavior the number of remote calls will drastically increase which in turn will increase the response time exponentially and reduce the performance drastically.

Hence, the performance of this system is also WORST.

 
Hemant Jha
Founder - VPlanSolutions
Researcher, Trainer

www.VPlanSolutions.co.in