by Dave Linthicum

SOA Performance Modeling

analysis
Nov 2, 20072 mins

I'm not sure I'm giving birth to a new TLA, figure somebody has used this by now. However, I wanted to touch upon the concept of performance modeling and its importance with SOA. Performance modeling is nothing new; however its use within the problem domain of SOA is very important. So, how do you go about it? Performance modeling is creating predictive models that will allow you to determine the performance of

I’m not sure I’m giving birth to a new TLA, figure somebody has used this by now. However, I wanted to touch upon the concept of performance modeling and its importance with SOA.

Performance modeling is nothing new; however its use within the problem domain of SOA is very important. So, how do you go about it?

Performance modeling is creating predictive models that will allow you to determine the performance of your system, in this case SOA, under different loads and configurations. It’s in essence a mathematical model, considering real variables, that effect overall performance. Thus, if done right, your model should provide a pretty good prediction of the impact of changes on the architecture as it relates to performance. Let’s face it SOAs are always going to change, and performance is always going to be an issue.

While performance modeling was fairly simple in the days of centralized systems, or perhaps systems that were slightly distributed, SOA is a very different animal. Indeed, SOAs are widely distributed, loosely coupled, and deal with different data sizes and data rates, and all of the systems have very different performance characteristics. Thus, SOAs are complex, and difficult to model.

Despite the complexities, it’s clear to me that performance models are necessary for SOA. This means that performance should always be a consideration during the design, proof-of-concept, deployment, and operation of an SOA. However, most SOA architects have no idea how to go about doing SOA performance modeling, or distributed computing modeling, with is basically the same thing.

The core concepts are:

  • Gather heuristics around all systems within the SOA.
  • Profile communications.
  • Profile the process layers.
  • Profile the services layer.
  • Profile the data layer.
  • Profile changing behaviors under loads.

Profile all core components.

Once that is done, you construct a distributed computing model that best represents the architecture, test it to determine its accuracy, and then leverage that model as a check point as your SOA changes over time. Pretty simple, but most SOAs don’t have one. Do you?

See me live at:

InfoWorld’s SOA Executive Forum

Building a Foundation for Continuous Change

November 7-8, 2007

Millennium Hotel, New York City