Applying Weighted Finite State Machines to Protocol Performance Analysis
Catalin Ionescu T-Mobile USA Bellevue WA, USA
[email protected]
Eleni Berki, Jyrki Nummenmaa Department of Computer Sciences University of Tampere Finland {eleni.berki, jyrki.nummenmaa}@cs.uta.fi
Abstract — This work proposes the use of a weighted Finite State Machine to serve as a computational model for analyzing the performance of communication protocols. The new model’s use is demonstrated by concentrating on web-based services, Internet level-5 protocols in particular, because when the latter are ported onto mobile handsets, fail to meet performance expectations. The same modeling technique can also be used for lower layers, and for other communication protocols. Utilizing the new model, this work analyzes one of the most important use cases found in the agenda of the Internet Engineering Task Force, that of presence. More specifically, the new model is used in the measurement of the Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions protocol suite performance in two different scenarios. Investing on the application of the new model the paper outlines the benefits of using Presence Event Packages for Session Initiation Protocol in the analysis and enhancement modeling
of
performance.
accuracy
improve
Mathematical the
precision
rigor of
and
protocol
performance evaluation and offer an improved understanding on the way various web-based services function. Keywords: Finite State Machine (FSM), Communication Protocol, International Organization for Standardization (ISO), Quality Standards, Performance, Metrics (and Measurement)
I.
INTRODUCTION
Over the last few years a steady stream of innovations has been brought into the mobile communications market. Services that were known to work only in the fixed Internet environment are also emerging in mobile networks. At the moment we have to deal with an extensive wired to mobile migration. When the deal has to do with processing power, regarding for instance Input/Output resources, battery life, and other, a mobile device is obviously less powerful than a desktop computer... Another problem to address is
that of connectivity. In the context of the fixed Internet environment the applications are running on powerful computers connected over wired networks, and the amount of data sent or received is not considered a problem anymore. In mobile networks, however, the radio resources are at premium. The network traffic, represented here by the amount of data, number of messages and even the size of the messages, needs careful consideration before a service is deployed. Obviously, the protocols used in the fixed Internet environment are not always suitable for mobile use. The Internet Engineering Task Force (IETF) is the standardization body that develops the majority of the protocols used by Internet applications. Their unwritten motto is “we believe in code that works”. As a consequence the services built on top of the specifications released by IETF proved to be extremely solid from the technical point of view. However, the initial specifications of IETF have been released long time before the need of using the same protocols in the radio networks. These specifications are used by Open Mobile Alliance (OMA), the standardization organization that was formed by the major players in the mobile services market. The OMA mission is to facilitate global user adoption of mobile data services. One of the problems addressed by this standardization body is the connectivity in mobile networks. In fact OMA takes two approaches to solve this problem: First, new protocols are defined in order to address the known limitations of radio networks. Second, well known protocols developed by IETF are tailored for mobile use. OMA’ s mission is difficult. In most of the cases there is more than one technology for resolving a certain use case. In such cases the candidate technologies need to be compared against a set of criteria. Thus, a model to measure the performance of a given technology is needed. Applications developed based on OMA specifications are deployed in live environments. At this stage the business takes priority over technology. Customers expect the service to work flawlessly. Errors can heavily impact the business of the service operator; hence network planning is crucial. Based on a business case the network planner needs to estimate the generated network traffic. These metrics can be used in order to deploy the right amount of resources. Therefore, a model for estimating the network traffic generated by communication protocols is a must. Informal methods for protocol specification have successfully been used in the communication protocols development field. Formal specification models have also been defined and used in order to specify and analyze the protocols’ ever increasing complexity more rigorously and more efficiently. There are several significant contributions on this particular subject, such as the works carried out by Kawashima et al. [1], Brand and Zafiropulo [2], Merlin [3], and Saadia [4]. These researchers proposed various different formal specification methods, which served as platforms for validating and verifying protocols. It must be noted, however, that the methods mentioned above are valuable only for the verification and validation. Performance analysis of network protocols has not been addressed in a formal manner. The lack of formalism makes it hard to estimate how the results can be compared to similar figures computed for another
protocol fulfilling the same use case. It is difficult to evaluate any research results due to the lack of comparison standards. Several surveys conducted as part of the Internet Engineering Task Force (IETF) work measure the performance of Internet protocols but none of them proposes a general model to start from. This is the root cause for many debates upon which protocol offers the best performance. For example, Singh et al. [5] acknowledged the verboseness of the SIMPLE protocol for Presence and proposed a few optimizations; but their study does not offer clear figures on the value of the traffic both before and after the optimization. In a similar manner, Saint-Andre [6] uses an informal method to calculate the generated traffic while using the Extensible Messaging and Presence Protocol (XMPP). A common theoretical model is needed in order to make a comparison between two technologies. Using models in protocol development is not a new concept. The need for such models comes from the fact that the Internet protocols development Process itself is based on peer reviews. RFC 4101 [7] proposes an approach to allow reviewers to quickly understand the essence of the system. We propose a pragmatic modeling technique, based on weighted Finite State Machines (FSMs), which have been applied to a wide area of applications, some of the notable areas been lowpower circuit design [8] and language research [9]. We apply our modeling technique to a concrete case – Presence Service [10]. We also use the model as a tool to find problematic areas for the communication protocols defined by the IETF’s SIMPLE working group [10]. The work presented in this paper can be applied in a more general way for analyzing protocol performance when generated traffic is involved. Ionescu’s work [11] contains an early version of the work presented here. Finite State Machines and their enriched semantic and/or semantic extensions such as Turing machines [12], general abstract machines [13], Communicating X-Machines [14], and Stream XMachines [15] are, amongst others, classical computational models and have been used in a variety of contexts and application domains [16]. They are mainly used to model systems and capturing dynamics in forms of states and transitions, as in the works by Holcombe [15], Berki and Novakovic [17], and Rolland and Richard [18]. Formal process modeling has also been achieved by generalized FSMs in the work of Berki and Georgiadou [19]. Apart from verification, when there is a need to validate with test cases, then FSMs offer a proven platform for testing [20, 21, 22].
II.
PROTOCOL PERFORMANCE
Communication protocols are always designed with certain principles in mind. Reliability, effectiveness and resilience are the most important quality features we are looking for. When all these are satisfied we consider that a protocol performs well. The problem that everybody faces is that it is not easy to analyze these features. Performance - otherwise called efficiency by known Quality Standards - is also difficult to define formally, analyze and widely accept. In the context of communication protocol performance and among mobile services’ developers, providers and users, there exist different meanings and degrees of significance regarding the quality features of reliability, effectiveness and resilience. These, often being in the list of service users’ quality expectations are a prerequisite for trust [23] and, for the developers and providers form the must do list that would guarantee the efficiency and general quality of a mobile service. Assuring these early in the design level, can lead to enhanced service efficiency and increased service use and usability. The latter is another quality factor widely acknowledged by the international quality standards for both process and product.
According to the authors’ work experience in the telecommunications domain, one thing that someone can be sure is that in mobile networks the transmission media are faulty. Assuring, though, the reliability of the data transmission is a must, even within the fault-tolerance limits of the protocol-based system. In the context of corrective maintenance, error detection and correction is the most widely used technique. While, however, error detection in radio networks is possible, the correction is not always an option. The actual data can easily be corrupted beyond repair; hence the entities involved in the communication process need the ability to request retransmission. Resilience is, in essence, the speedy recovery from problems and the ability to recover quickly from setbacks. Resilience addresses a form of local network failure, also known as topological failure, during which the communication link is completely cut; or, the service quality drops below the usable levels with frequent interruptions. In mobile networks this has been a widely known problem. A common solution is to enable the entities to test the communication link. A testing technique based on a suitable dynamic formalism, would facilitate service recovery and, in the long run, improve the trust on network efficiency, which directly influences the usage of the services [24]. Hence, a formally defined communication protocol that would cater for testing could increase the ability and quality of the overall performance.
III.
MODELS FOR PROTOCOL SPECIFICATION
An understanding of the internals of network protocol is crucial for both design and analysis. A protocol must be defined considering its context. This context is in fact given by the architectural layer where the protocol is used. In this paper we particularly address the Level 5 protocols as defined by IETF [10], but our method seems applicable to other contexts as well.
A. Modeling Protocols with Finite State Machines In their classic work on modeling communication protocols, Brand and Zafiropulo [2] represent processes with a FSM model, where each process is represented as a finite state machine, and the processes are then “connected” using a FIFO channel. The channels are ideal – communication is smooth and messages are not lost or corrupted. In case we need to model a non-ideal channel we can introduce a new finite state machine that behaves according to our specifications and introduces errors in the communication: drops messages, corrupts messages and so on. Protocols are then modeled using FSMs and a customised notation for expressing the transmissions. An example is shown in Figure 1. A Client Server Protocol is modeled so that a “minus” sign is used for sent messages and a “plus” sign is used for the reception. Protocol states are modeled using FSM states. A transition from one state to another happens when a message is sent or received – similarly to graphs an arc is traversed. However, this proposed model has some limitations, e.g. (i) it is unable to express a protocol where there is an arbitrary number of messages in transit, and (ii) it does not address the size of the messages. Consequently, without improvements this model is not enough for those situations where we study protocol performance for a specific concrete use case. FSM, as a dynamic and computational formalism, with a natural testing procedure encapsulated in the FSM structure, support the accurate representation of a communication protocol used in mobile environments effectively. Performance analysis, though, requires suitable metrics to define the system’s states, especially those associated with the communication system’s evolution – due to the amount of messages - and those associated with the communication system’s entropy – caused due to the amount and size of the sent or received messages [22, pp 232-233].
C. Modelling Use Cases with Finite State Machine Process 1 (client) - LOGIN
Process 2 (server)
Not Logged-in
+ LOGIN
IDLE
First step is to model a use case using the FSM syntax and semantics. For our formal definitions, we need to review some basic definitions for FSMs. We assume that the protocol involves a finite number of distinct processes P1 ,…, of distinct states
- ACK_LOGOUT
+ ACK_LOGOUT
Service_Request Wait
+ ACK_LOGIN
+ LOGOUT
them is the current state. The processes may also send and receive messages through communication channels. There is a global set of messages Σ . Given that
χ ∈Σ
Σ
Pi
cij
- ACK_LOGIN
Figure 1. A Client Server Protocol modeled with Finite State Machines
Metrics, morphological and complexity metrics in particular, are significant indicators for estimation and evaluation on system’s zoticality [22, p232], which is the ability of a system to respond to dynamic changes.
IV.
FSM-BASED PROTOCOL MODELING FOR PERFORMANCE MEASUREMENT
The Finite State Machines cannot quantify the primitives that model the amount of messages exchanged between two entities involved in the communication. At the same time the FSMs fail in measuring the amount of data over the network.
A. Measuring Effectiveness Quality is an elusive term [25] by its very nature. System effectiveness is, like the concept of software quality, a loose term. Saying that a communication protocol is effective requires us to describe also the context in which the protocol is used. Moreover, it is hard to say that one protocol is more effective than another without having a common comparison ground. When making such statements one needs to describe the input data set and the measured outcome. Thus, our model must take these features into account. Similar FSM extended models are the so called Stream X-machines [26] and Communicating X-machines [27].
B. Modelling Protocols with Finite State Machines To use Finite State Machines for traffic measurement, we must model (i) the number of messages over the network and (ii) the amount of data sent between the entities involved in communication. Both parameters are measured in the context of the so called use case execution. In order to improve the Finite State Machine model to be suitable for our purpose and application domain we are going to: • Model the execution of a use case of interest. • Define how the number of messages is measured. • Define how the amount of data is measured.
si ,n
from
to
si ,m .
We write
to denote the content, ie the set of messages in the communication channel for messages from
Logged-in
si ,m = τ (si ,n , χ ) to
, we write
denote that processing (sending or receiving) the message changes the state of process
Authenticated
- LOGOUT
Px . For each process Pi there is a finite number si ,1 … si , y , and at any moment of time, one of
Pi
to
Pj .
S, C
Definition: A system state is a pair
, where
for the set of current states for all processes and set of contents of all communication channels. Definition: We say that two states consecutive in
Pi
if
∃χ ∈ Σ
such that
C
si ,n
S
stands
stands for the and
si ,m
si ,m = τ (si ,n , χ ) .
are
In other words, two states in process are consecutive if a message received or sent moves the process from one state to the other. Even though some events may take place parallel, we can, without having an effect in the final state after all of them, choose any order for the parallel events and thereby for all events.
S, C
Definition: We say that two system states
S ′, C ′ states in
are consecutive if there is a process
S, C
and
S ′, C ′
such that its
are consecutive, and all other
S, C
processes’ states are the same in
assume si , m ( si , m +1 ) to be the state of
Pi
in
respectively), and χ ∈ Σ is such that si , m +1 we write
Pi
and
S ′, C ′ = τ ( S , C , χ ) .
and
S ′, C ′
S, C
(
. We
S ′, C ′
= τ (si , m , χ ) .
,
Then
Definition: We say that a sequence of consecutive systems states
S1 ,C1
,
S2 ,C2
,…,
S k , Ck
is a use case and the
sequence of related state transitions is a use case execution. Of course, a use case can be executed from a state to the same state. The next step is to define a way to calculate the number of messages sent and received in a use case execution. This can be easily if we consider the following definition and subsequent formula. Definition: Fuction θ : Σ → ℜ is a cost function on Σ ,
( )
if ∀χ ∈ Σ i , θ χ ≥ 0 . Definition: A weighted Finite State Machine is a Finite State Machine, which has a cost function associated with the global set of messages Σ . In our case, we can limit the cost function values to natural numbers. The choice of the cost function may be done in different ways depending on the objectives. For instance, if we are only interested in the number of messages exchanged, we give the cost
function the value 1 for messages exchanged between distinct processes, and 0 otherwise. If some of the processes execute on the same node, we may choose the cost function value 0 for all messages between processes in the same node. In the case of mobile computing, we want the cost function to reflect the cost of the actual message passing, in which case the size of the messages work as a good cost function. If only some of the messages would travel in the mobile network, then also that could be taken into account in the cost function. Definition: Given a cost function θ : Σ → ℜ , the cost of the execution of a use case
S1 , C1
S 2 , C2
,
∑ θ (χ ) , where for each i,1 ≤ i < k , = τ ( S , C , χ ). and S , C k
i
1
i +1
i +1
i
i
, …,
S k , Ck
it holds that χ i
B. Presence Service Architecture Presence Service accepts presence information, stores it and then distributes it. The Presence Information is created and published (made available for others) by the Presentities. The Watchers are given access to the Presence Information already available on the server. Figure x shows the Presence Service System architecture.
User A
is
∈Σ
A. The Presence Data Model As a one-line definition Presence is the ability and willingness of a user to communicate across a various set of services and devices. SIMPLE working group in IETF defined a Presence Data Model according to the requirements for Presence outlined in RFC 2778 [29]. The data model introduces three terms: Service, Device and Person. Figure 26 depicts the main message. A Person subscribes to Services that run in Devices. For example, a user can own a mobile phone and a personal computer. The mobile phone runs a Mobile Operator Push to Talk Client and an Instant Messaging client. The personal computer runs a Yahoo Instant Messaging client and a Mobile Operator Instant Messaging client.
Person
Service A
Device A
Service B
Device B
Watcher Internet
Presence Service
Figure 3 – Presence Service Architecture C. A FSP Time Line Model for Presence The presence Service shown in Figure 2 accepts, stores and distributes Presence Information [10]. The use case shows a Presence Client connected to a Presence Server. This client publishes the Presence Information on behalf of a User A. User B can use its won client in order to start a subscription for updates. From an Idle State the system is trying to reach its Ideal State – Connected & Published & Subscribed. An internal or external event Presence Client
Subscribes to a certain number of services…
Connect to Service
IDLE
State 1
Publish Presence Info
State 1
State 2
Subscribe for Presence Info
State 2
State 3
The services run in different devices.
Time
Presence Server
IDLE
A person…
Service C
Notify
Watcher User Agent
Presentity
INTERNET PRESENCE – A CASE STUDY
We measure the performance of one of the so called SIMPLE Presence protocols by Rosenberg [27] using the extended FSM model. In computer and telecommunications networks, presence information conveys user’s availability and willingness to communicate. Presence information is published to other systems' users — sometimes called watchers or subscribers — to convey its communication state.
Subscribe
Presentity User Agent
i
The cost function now serves for a straightforward cost calculation of a use case.
V.
User B
Publish
State 3
State 1 – Connected State 2 – Connected & Published State 3 – Connected & Published & Subscribed
Figure 2. Abstract Time Line Model for Presence
Figure 2 – A Data Model for Presence
can change its state to anything than the ideal state. In this case the system is again aiming at the ideal state.
D. A Presence Use Case Publication and Subscription are the two main Presence use cases. In order to measure the performance of the SIMPLE protocol we need to define the following parameters: Presence Information – what kind of information is published / subscribed. Subscription Life Time (SLT) –the time (expressed in seconds) of the session that a user remains connected. Presence Updates per Hour (PUH) – the number of times the user will change the presence information in an hour Presentities (PRES) - Number of entities (presentities) the user subscribes for. Refresh Interval (RI) – the time interval (expressed in seconds) that the client needs to refresh its subscriptions. In addition to the parameters above we also define the following variables. They express the size in bytes of the messages exchanges between the client and the server and they are calculated based on the type of Presence Information being exchanged. In practice they are calculated based on the size of the so called presence document published by a Presence client. Publish Message Size – the size of the Presence document Notify Message Size – the size of the Presence document multiplied by the number of entities subscribed for. Other SIP messages sizes are according to the SIP specification Based on the parameters above we calculate the results presented in Table 1. One day equals 7200 seconds and one month equals 62208000 seconds.
E. Improving the SIMPLE protocol A natural question is, of course, if the simple basic solution could be improved. Niemi in his Internet draft entitled “An Extension to Session Initiation Protocol (SIP)” [28] describes such an improvement. The idea is to limit the number of notifications. We notice, by looking at the Subscribe model, that in case of a timeout expiry, a full notification is sent back to the client. This is, sometimes, useless since the information on the server is the same as what the client has stored locally. This refresh happens only due to the timeout and not due to a real need. TABLE I.
PRESENCE USE CASE COSTS
UC 1
UC2
UC 3
UC 4
UC 5
Subscription
1
1
1
1
1 month
LifeTime
day
month
month
month
Refresh
7200
7200
43200
43200
43200
Interval (hours) Presence
1
1
1
1
2
10
10
10
20
20
588
17292
16092
30492
60732
(per hour)
per watcher Number of Messages
1
31.65
30.11
56.87
113.43
data (Mb) TABLE II.
PRESENCE USE CASE COSTS, IMPROVED PROTOCOL
UC 1
UC2
UC 3
UC 4
UC 5
Subscription
1
1
1
1
1 month
LifeTime
day
month
month
month
Refresh
7200
7200
43200
43200
43200
1
1
1
1
2
10
10
10
20
20
564
16572
15792
39372
60612
0.41
11.9
11.5
21.64
43.19
Interval (hours) Presence Changes (per hour) Presentities per watcher Number of Messages Amount of data (Mb) A real need to refresh appears when the client looses the connectivity for a short amount of time. When the connectivity is back a subscription refresh is needed. However, not in all cases the server has new information to send. In these cases a full notification is again not needed. The IETF draft proposed the suppression of some unneeded notifications. The formula for calculating the messages for the Publication Use Case does not change. However the Subscription use case is affected. Table 2 shows the new values. Comparing Table 1 (above) and Table 2, it is obvious that there is no major benefit that we would get using Niemi’s protocol, when the number of messages is being used as the measure. However, when we compare the amount of data, we notice that the improved protocol does gain a substantial benefit, as the amount of data is less than a half from the basic protocol.
VI.
Changes
Presentities
Amount of
CONCLUSIONS
We have proposed a method to enrich the finite state machines with weights that represent the network traffic cost. To demonstrate the practical use of our approach, we applied it to analyze Internet Presence protocols. The application is fairly straightforward, but it does demonstrate the usefulness of weighted finite state machines in the area of practical efficiency analysis for network protocols. Our example case of Presence protocols succeeds to demonstrate a case, where traditional performance comparison based on just numbers of messages does not really make the difference between the cases, but when the weight function is used to take into account the amount of data that has been sent, there is a striking difference between the cases.
REFERENCES
[1]
[2] [3]
[4]
[5] [6]
[7] [8]
[9]
[10] [11]
[12]
[13] [14]
[15] [16] [17]
H. Kawashima, K. Futami, S. Kano, “Functional sepcification of call processing by state transition diagram”, IEEE Transactions on Communication Technology, vol. 19, 1971, pp 581-587. D. Brand and P. Zafiropulo, On communicating finite state machines, IBM Research Report RZ 1053, 1981. P. M. Merlin, “Specification and validation of protocols” in IEEE Transactions on Communications, vol. COM-27, 1980, pp. 1761-1680. A. Saadia, An Investigation into the Formalisation of Software Design Schemata, MPhil Thesis, Faculty of Science, Computing & Engineering, University of North London, 1999. V. K. Singh, H. Schulzrinne, M. Isomaki, P. Boni, Presence Traffic Optimization Techniques, 28th Oct 2006 P. Saint-Andre, “Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence”, draft-saintandrerfc3921bis-04, IETF, 2007. E. Rescorla, Writing protocol models, RFC4101, IETF, 2005. L. Yuan, G. Qu, T. Villa, A. Sangiovanni-Vincentelli, “FSM re-engineering and its application in low power state encoding”, Proceedings of the 2005 Asia and South Pacific Design Automation Conference, 2005, pp 254 – 259. C. Allauzen, M. Mohri, B. Roark, T. Villa, “Generalized algorithms for constructing statistical language models”, Proceedings of the 41st Annual Meeting on Association for Computational Linguistics – vol. 1, 2003, pp. 40 - 47 Internet Engineering Task Force, Requirements for Internet hosts – Communication Layers, RFC1122, IETF, 1989. C. Ionescu, An Enriched Finite State Machine Model-based Formalism for Layer-5 Internet Protocols Modelling – An Investigation on Protocol Performance, MSc thesis, University of Tampere, Department of Computer Sciences, 2008. H. R. Lewis, C. H. Papadimitriou, Elements of the theory of computation, Prentice Hall International, Inc. International Edition. S. Eilenberg, Automata, Languages and Machines, Vol. A, Academic Press, 1974. Barnard, J. & Woodward, M., “Communicating X-Machines”, in Information and Software Technology, vol. 38, Elsevier, 1996, pp. 401-407. M. Holcombe, “X-Machines as a Basis for Dynamic System Specification”, Software Engineering Journal, March 1988. D. Wood, Theory of Computation, J. Wiley and Sons, 1987 E. Berki, D. Novakovic, “Towards an Integrated Specification Environment (ISE)”, S. Katsikas (ed.) Proceedings of the 5th International Hellenic Conference of Informatics, Greek Computer Society, Athens, Greece, 1995. pp. 259-269.
[18] C. Rolland, C.A. Richard, C., “A dynamic model of
[19]
[20]
[21]
[22]
[23]
[24]
[25]
[26] [27]
[28]
[29]
Information Processing System based on Finite Automata”, Systems Science, vol. 9, no 1-2, 1983. E. Berki, E. Georgiadou, Towards resolving Data Flow Diagramming Deficiencies by using Finite State Machines, I. M. Marshall, W. B. Samson, D. G. Edgar-Nevill (eds) Proc.. of the 5th International Software Quality Conference. Universities of Abertay Dundee & Humberside, Dundee. T.S. Chow, “Testing Software Design Modeled by FiniteState Machines”, IEEE Transactions on Software Engineering, vol. SE-4, no. 3, 1978. S. Fujiwara, G. v. Bochmann, F. Khedek, M. Amalou, A. Ghedamsi, “Test Selection Based on Finite State Models”, IEEE Transactions on Software Engineering, vol. 17, no. 6, 1991. E. Berki,. Establishing a scientific discipline for capturing the entropy of systems process models: CDM-FILTERS - A Computational and Dynamic Metamodel as a Flexible and Integrated Language for the Testing, Expression and Reengineering of Systems. Ph. D. thesis, Faculty of Science, Computing & Engineering, University of North London, London, UK, 2001. E. Berki, K. Siakas, E. Georgiadou, “Agile Quality or Depth of Reasoning? Applicability versus Suitability with Respect to Stakeholders' Needs”, I. Stamelos, I. & P. Sfetsos, (eds) Agile Software Development Quality Assurance. IRM Press and Idea Group Publishing: Hershey, PA, USA, 2007. E. Berki, H. Isomaki, A. Salminen, “Quality and Trust Relationships in Software Process Improvement”, E. Berki, J. Nummenmaa, G. Staples, M. Ross (eds)., Software Quality meets Work-Life Quality, Conference Proceedings of the Software Quality Management (SQM) International conference 2007, The British Computer Society Press for the 50th Anniversary of the British Computer Society. E. Berki, E. Georgiadou, M. Holcombe, "Requirements Engineering and Process Modelling in Software Quality Management – Towards a Generic Process Metamodel”, The Software Quality Journal, vol 12, Kluwer Academic Publishers, 2004, pp. 265-283. M. Holcombe, F. Ipate, Correct Systems - Building a Business Process Solution, Springer-Verlag, 1998. J. Rosenberg, SIMPLE made Simple: An Overview of the IETF Specifications for Instant Messaging and Presence using the Session Initiation Protocol (SIP), draft-ietf-simple-simple05, IETF, 2008 A. Niemi, An Extension to Session Initiation Protocol (SIP) Events for Conditional Event Notification, draft-ietf-sipsubnot-etags-03, IETF, 2008. M. Day, J. Rosenberg, H Sugano: A Model for Presence and Instant Messaging, RFC 2778, IETF, 2000.