Re: [AM] modelling the state of a service

Ian Chamberlain <[email protected]> Mon, 16 Feb 2004 13:33:46 +0000
Newsgroups gmane.comp.programming.modeling.agile
Message-ID <[email protected]>
Scott Ambler Sent Mon, 16 Feb 2004 07:58:15 -0500
>
>At 12:05 PM 2/16/2004 +0000, Ian Chamberlain wrote:
>>Hi All,
>>
>>How about a real world modelling question for a change?
>
>That would be too radical.  ;-)
>
>
>
>>I'm trying to come up with a nice simple way to represent the current 
>>state of a service, where the service consists of a number of processes 
>>spread over several nodes.
>>
>>For example the web server part of a web service might consist of two 
>>clustered nodes running a web server listening to requests on port 80 and 
>>passing the request to another node cluster to do the actual processing. 
>>For the web server part of the service to be available at least one node 
>>has to be available, running the web server process, listening on port 80 
>>and able to connect to the next tier. Other tiers would have similar 
>>combinations of processes so in order to say the web service is actually 
>>available a path through all the tiers must be traceable.
>>
>>Depending on different combinations of states across the tiers you might 
>>want to trigger alerts to notify the state of the service to operators.
>>
>>Any suggestions that don't involve multiple levels of composite states 
>>gratefully received.
>
>How about a UML state machine diagram 
>(http://www.agilemodeling.com/artifacts/stateMachineDiagram.htm) to model 
>the states and a UML deployment diagram 
>(http://www.agilemodeling.com/artifacts/deploymentDiagram.htm) to model the 
>various nodes?  Or perhaps just one of the two diagrams if it proves 
>sufficient on its own?
>
I thought about a state diagram. Here are some of the issues I came up with:

A state diagram represents the state of one object - what is the object? The 
service? What about the component pieces?
A service is made up of lots of components each with its own state - do I 
use composite states?
How do I model the situation where if a process on one node fails the 
service is still available but if it fails on two nodes the service is 
unavailable? i.e. one event of a type is ok, two is not, unless we've 
recovered in the meantime.

What most of this adds up to is how do I keep it simple? I ended up with a 
"service compromised" state that had huge numbers of transitions to "service 
available", each with a huge guard. I was just hoping someone had had come 
up with a better way.

Regards

Ian Chamberlain

_________________________________________________________________
Stay in touch with absent friends - get MSN Messenger 
http://www.msn.co.uk/messenger

For more information about AM, visit the Agile Modeling Home Page at www.agilemodeling.com
--^----------------------------------------------------------------
This email was sent to: [email protected]

EASY UNSUBSCRIBE click here: http://topica.com/u/?bUrKDA.bWnbtk.Z2NtYS1h
Or send an email to: [email protected]

TOPICA - Start your own email discussion group. FREE!
http://www.topica.com/partner/tag02/create/index2.html
--^----------------------------------------------------------------